24 #ifndef NMODL_AST_NODE_HPP 25 #define NMODL_AST_NODE_HPP 53 virtual ~Node() =
default;
81 return new Node(*
this);
121 return std::static_pointer_cast<
Node>(shared_from_this());
128 return std::static_pointer_cast<
const Node>(shared_from_this());
201 #endif // !NMODL_AST_NODE_HPP 202 #ifndef NMODL_AST_STATEMENT_HPP 203 #define NMODL_AST_STATEMENT_HPP 297 return std::static_pointer_cast<
Statement>(shared_from_this());
304 return std::static_pointer_cast<
const Statement>(shared_from_this());
377 #endif // !NMODL_AST_STATEMENT_HPP 378 #ifndef NMODL_AST_EXPRESSION_HPP 379 #define NMODL_AST_EXPRESSION_HPP 478 return std::static_pointer_cast<
Expression>(shared_from_this());
485 return std::static_pointer_cast<
const Expression>(shared_from_this());
558 #endif // !NMODL_AST_EXPRESSION_HPP 559 #ifndef NMODL_AST_BLOCK_HPP 560 #define NMODL_AST_BLOCK_HPP 589 virtual ~
Block() =
default;
597 throw std::runtime_error(
"get_parameters not implemented");
622 return new Block(*
this);
662 return std::static_pointer_cast<
Block>(shared_from_this());
669 return std::static_pointer_cast<
const Block>(shared_from_this());
742 #endif // !NMODL_AST_BLOCK_HPP 743 #ifndef NMODL_AST_IDENTIFIER_HPP 744 #define NMODL_AST_IDENTIFIER_HPP 841 return std::static_pointer_cast<
Identifier>(shared_from_this());
848 return std::static_pointer_cast<
const Identifier>(shared_from_this());
921 #endif // !NMODL_AST_IDENTIFIER_HPP 922 #ifndef NMODL_AST_NUMBER_HPP 923 #define NMODL_AST_NUMBER_HPP 950 virtual ~
Number() =
default;
959 throw std::runtime_error(
"to_double not implemented");
1023 return std::static_pointer_cast<
Number>(shared_from_this());
1030 return std::static_pointer_cast<
const Number>(shared_from_this());
1103 #endif // !NMODL_AST_NUMBER_HPP 1104 #ifndef NMODL_AST_STRING_HPP 1105 #define NMODL_AST_STRING_HPP 1148 explicit String(
const std::string& value);
1153 virtual ~
String() =
default;
1181 return new String(*
this);
1221 return std::static_pointer_cast<
String>(shared_from_this());
1228 return std::static_pointer_cast<
const String>(shared_from_this());
1276 void set(std::string _value) {
1284 void set_value(std::string value);
1358 void set_parent_in_children();
1366 #endif // !NMODL_AST_STRING_HPP 1367 #ifndef NMODL_AST_INTEGER_HPP 1368 #define NMODL_AST_INTEGER_HPP 1411 explicit Integer(
int value,
const std::shared_ptr<Name>& macro);
1484 return std::static_pointer_cast<
Integer>(shared_from_this());
1491 return std::static_pointer_cast<
const Integer>(shared_from_this());
1552 void set(
int _value) {
1560 void set_value(
int value);
1566 void set_macro(std::shared_ptr<Name>&& macro);
1571 void set_macro(
const std::shared_ptr<Name>& macro);
1662 void set_parent_in_children();
1670 #endif // !NMODL_AST_INTEGER_HPP 1671 #ifndef NMODL_AST_FLOAT_HPP 1672 #define NMODL_AST_FLOAT_HPP 1707 explicit Float(
const std::string& value);
1711 virtual ~
Float() =
default;
1739 return new Float(*
this);
1779 return std::static_pointer_cast<
Float>(shared_from_this());
1786 return std::static_pointer_cast<
const Float>(shared_from_this());
1834 void set(std::string _value) {
1842 void set_value(std::string value);
1902 value = value.insert (0, 1,
'-');
1909 return std::stod(value);
1933 void set_parent_in_children();
1941 #endif // !NMODL_AST_FLOAT_HPP 1942 #ifndef NMODL_AST_DOUBLE_HPP 1943 #define NMODL_AST_DOUBLE_HPP 1987 explicit Double(
const std::string& value);
1992 virtual ~
Double() =
default;
2020 return new Double(*
this);
2060 return std::static_pointer_cast<
Double>(shared_from_this());
2067 return std::static_pointer_cast<
const Double>(shared_from_this());
2115 void set(std::string _value) {
2123 void set_value(std::string value);
2183 value = value.insert (0, 1,
'-');
2190 return std::stod(value);
2214 void set_parent_in_children();
2222 #endif // !NMODL_AST_DOUBLE_HPP 2223 #ifndef NMODL_AST_BOOLEAN_HPP 2224 #define NMODL_AST_BOOLEAN_HPP 2329 return std::static_pointer_cast<
Boolean>(shared_from_this());
2336 return std::static_pointer_cast<
const Boolean>(shared_from_this());
2384 void set(
bool _value) {
2392 void set_value(
int value);
2483 void set_parent_in_children();
2491 #endif // !NMODL_AST_BOOLEAN_HPP 2492 #ifndef NMODL_AST_NAME_HPP 2493 #define NMODL_AST_NAME_HPP 2529 explicit Name(
const std::shared_ptr<String>& value);
2534 virtual ~
Name() =
default;
2562 return new Name(*
this);
2602 return std::static_pointer_cast<
Name>(shared_from_this());
2609 return std::static_pointer_cast<
const Name>(shared_from_this());
2667 void set_name(
const std::string& name)
override;
2680 void set_value(std::shared_ptr<String>&& value);
2685 void set_value(
const std::shared_ptr<String>& value);
2747 void set_parent_in_children();
2755 #endif // !NMODL_AST_NAME_HPP 2756 #ifndef NMODL_AST_PRIME_NAME_HPP 2757 #define NMODL_AST_PRIME_NAME_HPP 2799 explicit PrimeName(
const std::shared_ptr<String>& value,
const std::shared_ptr<Integer>& order);
2872 return std::static_pointer_cast<
PrimeName>(shared_from_this());
2879 return std::static_pointer_cast<
const PrimeName>(shared_from_this());
2930 const std::shared_ptr<Integer>&
get_order() const noexcept {
2953 void set_value(std::shared_ptr<String>&& value);
2958 void set_value(
const std::shared_ptr<String>& value);
2964 void set_order(std::shared_ptr<Integer>&& order);
2969 void set_order(
const std::shared_ptr<Integer>& order);
3031 void set_parent_in_children();
3039 #endif // !NMODL_AST_PRIME_NAME_HPP 3040 #ifndef NMODL_AST_INDEXED_NAME_HPP 3041 #define NMODL_AST_INDEXED_NAME_HPP 3083 explicit IndexedName(
const std::shared_ptr<Identifier>& name,
const std::shared_ptr<Expression>& length);
3147 return "IndexedName";
3155 return std::static_pointer_cast<
IndexedName>(shared_from_this());
3162 return std::static_pointer_cast<
const IndexedName>(shared_from_this());
3200 const std::shared_ptr<Identifier>&
get_name() const noexcept {
3236 void set_name(std::shared_ptr<Identifier>&& name);
3241 void set_name(
const std::shared_ptr<Identifier>& name);
3247 void set_length(std::shared_ptr<Expression>&& length);
3252 void set_length(
const std::shared_ptr<Expression>& length);
3314 void set_parent_in_children();
3322 #endif // !NMODL_AST_INDEXED_NAME_HPP 3323 #ifndef NMODL_AST_VAR_NAME_HPP 3324 #define NMODL_AST_VAR_NAME_HPP 3351 std::shared_ptr<Integer>
at;
3363 explicit VarName(
const std::shared_ptr<Identifier>& name,
const std::shared_ptr<Integer>& at,
const std::shared_ptr<Expression>& index);
3435 return std::static_pointer_cast<
VarName>(shared_from_this());
3442 return std::static_pointer_cast<
const VarName>(shared_from_this());
3480 const std::shared_ptr<Identifier>&
get_name() const noexcept {
3493 const std::shared_ptr<Integer>&
get_at() const noexcept {
3506 const std::shared_ptr<Expression>&
get_index() const noexcept {
3529 void set_name(std::shared_ptr<Identifier>&& name);
3534 void set_name(
const std::shared_ptr<Identifier>& name);
3540 void set_at(std::shared_ptr<Integer>&& at);
3545 void set_at(
const std::shared_ptr<Integer>& at);
3551 void set_index(std::shared_ptr<Expression>&& index);
3556 void set_index(
const std::shared_ptr<Expression>& index);
3618 void set_parent_in_children();
3626 #endif // !NMODL_AST_VAR_NAME_HPP 3627 #ifndef NMODL_AST_ARGUMENT_HPP 3628 #define NMODL_AST_ARGUMENT_HPP 3670 explicit Argument(
const std::shared_ptr<Identifier>& name,
const std::shared_ptr<Unit>& unit);
3742 return std::static_pointer_cast<
Argument>(shared_from_this());
3749 return std::static_pointer_cast<
const Argument>(shared_from_this());
3787 const std::shared_ptr<Identifier>&
get_name() const noexcept {
3800 const std::shared_ptr<Unit>&
get_unit() const noexcept {
3823 void set_name(std::shared_ptr<Identifier>&& name);
3828 void set_name(
const std::shared_ptr<Identifier>& name);
3834 void set_unit(std::shared_ptr<Unit>&& unit);
3839 void set_unit(
const std::shared_ptr<Unit>& unit);
3901 void set_parent_in_children();
3909 #endif // !NMODL_AST_ARGUMENT_HPP 3910 #ifndef NMODL_AST_REACT_VAR_NAME_HPP 3911 #define NMODL_AST_REACT_VAR_NAME_HPP 3943 explicit ReactVarName(
const std::shared_ptr<Integer>& value,
const std::shared_ptr<VarName>& name);
4007 return "ReactVarName";
4015 return std::static_pointer_cast<
ReactVarName>(shared_from_this());
4022 return std::static_pointer_cast<
const ReactVarName>(shared_from_this());
4048 const std::shared_ptr<Integer>&
get_value() const noexcept {
4073 const std::shared_ptr<VarName>&
get_name() const noexcept {
4096 void set_value(std::shared_ptr<Integer>&& value);
4101 void set_value(
const std::shared_ptr<Integer>& value);
4107 void set_name(std::shared_ptr<VarName>&& name);
4112 void set_name(
const std::shared_ptr<VarName>& name);
4174 void set_parent_in_children();
4182 #endif // !NMODL_AST_REACT_VAR_NAME_HPP 4183 #ifndef NMODL_AST_READ_ION_VAR_HPP 4184 #define NMODL_AST_READ_ION_VAR_HPP 4214 explicit ReadIonVar(
const std::shared_ptr<Name>& name);
4278 return "ReadIonVar";
4286 return std::static_pointer_cast<
ReadIonVar>(shared_from_this());
4293 return std::static_pointer_cast<
const ReadIonVar>(shared_from_this());
4331 const std::shared_ptr<Name>&
get_name() const noexcept {
4354 void set_name(std::shared_ptr<Name>&& name);
4359 void set_name(
const std::shared_ptr<Name>& name);
4421 void set_parent_in_children();
4429 #endif // !NMODL_AST_READ_ION_VAR_HPP 4430 #ifndef NMODL_AST_WRITE_ION_VAR_HPP 4431 #define NMODL_AST_WRITE_ION_VAR_HPP 4461 explicit WriteIonVar(
const std::shared_ptr<Name>& name);
4525 return "WriteIonVar";
4533 return std::static_pointer_cast<
WriteIonVar>(shared_from_this());
4540 return std::static_pointer_cast<
const WriteIonVar>(shared_from_this());
4578 const std::shared_ptr<Name>&
get_name() const noexcept {
4601 void set_name(std::shared_ptr<Name>&& name);
4606 void set_name(
const std::shared_ptr<Name>& name);
4668 void set_parent_in_children();
4676 #endif // !NMODL_AST_WRITE_ION_VAR_HPP 4677 #ifndef NMODL_AST_NONSPECIFIC_CUR_VAR_HPP 4678 #define NMODL_AST_NONSPECIFIC_CUR_VAR_HPP 4772 return "NonspecificCurVar";
4825 const std::shared_ptr<Name>&
get_name() const noexcept {
4848 void set_name(std::shared_ptr<Name>&& name);
4853 void set_name(
const std::shared_ptr<Name>& name);
4915 void set_parent_in_children();
4923 #endif // !NMODL_AST_NONSPECIFIC_CUR_VAR_HPP 4924 #ifndef NMODL_AST_ELECTRODE_CUR_VAR_HPP 4925 #define NMODL_AST_ELECTRODE_CUR_VAR_HPP 5019 return "ElectrodeCurVar";
5034 return std::static_pointer_cast<
const ElectrodeCurVar>(shared_from_this());
5072 const std::shared_ptr<Name>&
get_name() const noexcept {
5095 void set_name(std::shared_ptr<Name>&& name);
5100 void set_name(
const std::shared_ptr<Name>& name);
5162 void set_parent_in_children();
5170 #endif // !NMODL_AST_ELECTRODE_CUR_VAR_HPP 5171 #ifndef NMODL_AST_SECTION_VAR_HPP 5172 #define NMODL_AST_SECTION_VAR_HPP 5202 explicit SectionVar(
const std::shared_ptr<Name>& name);
5266 return "SectionVar";
5274 return std::static_pointer_cast<
SectionVar>(shared_from_this());
5281 return std::static_pointer_cast<
const SectionVar>(shared_from_this());
5319 const std::shared_ptr<Name>&
get_name() const noexcept {
5342 void set_name(std::shared_ptr<Name>&& name);
5347 void set_name(
const std::shared_ptr<Name>& name);
5409 void set_parent_in_children();
5417 #endif // !NMODL_AST_SECTION_VAR_HPP 5418 #ifndef NMODL_AST_RANGE_VAR_HPP 5419 #define NMODL_AST_RANGE_VAR_HPP 5449 explicit RangeVar(
const std::shared_ptr<Name>& name);
5521 return std::static_pointer_cast<
RangeVar>(shared_from_this());
5528 return std::static_pointer_cast<
const RangeVar>(shared_from_this());
5566 const std::shared_ptr<Name>&
get_name() const noexcept {
5589 void set_name(std::shared_ptr<Name>&& name);
5594 void set_name(
const std::shared_ptr<Name>& name);
5656 void set_parent_in_children();
5664 #endif // !NMODL_AST_RANGE_VAR_HPP 5665 #ifndef NMODL_AST_GLOBAL_VAR_HPP 5666 #define NMODL_AST_GLOBAL_VAR_HPP 5696 explicit GlobalVar(
const std::shared_ptr<Name>& name);
5768 return std::static_pointer_cast<
GlobalVar>(shared_from_this());
5775 return std::static_pointer_cast<
const GlobalVar>(shared_from_this());
5813 const std::shared_ptr<Name>&
get_name() const noexcept {
5836 void set_name(std::shared_ptr<Name>&& name);
5841 void set_name(
const std::shared_ptr<Name>& name);
5903 void set_parent_in_children();
5911 #endif // !NMODL_AST_GLOBAL_VAR_HPP 5912 #ifndef NMODL_AST_POINTER_VAR_HPP 5913 #define NMODL_AST_POINTER_VAR_HPP 5943 explicit PointerVar(
const std::shared_ptr<Name>& name);
6007 return "PointerVar";
6015 return std::static_pointer_cast<
PointerVar>(shared_from_this());
6022 return std::static_pointer_cast<
const PointerVar>(shared_from_this());
6060 const std::shared_ptr<Name>&
get_name() const noexcept {
6083 void set_name(std::shared_ptr<Name>&& name);
6088 void set_name(
const std::shared_ptr<Name>& name);
6150 void set_parent_in_children();
6158 #endif // !NMODL_AST_POINTER_VAR_HPP 6159 #ifndef NMODL_AST_BBCORE_POINTER_VAR_HPP 6160 #define NMODL_AST_BBCORE_POINTER_VAR_HPP 6255 return "BbcorePointerVar";
6270 return std::static_pointer_cast<
const BbcorePointerVar>(shared_from_this());
6308 const std::shared_ptr<Name>&
get_name() const noexcept {
6331 void set_name(std::shared_ptr<Name>&& name);
6336 void set_name(
const std::shared_ptr<Name>& name);
6398 void set_parent_in_children();
6406 #endif // !NMODL_AST_BBCORE_POINTER_VAR_HPP 6407 #ifndef NMODL_AST_EXTERN_VAR_HPP 6408 #define NMODL_AST_EXTERN_VAR_HPP 6438 explicit ExternVar(
const std::shared_ptr<Name>& name);
6510 return std::static_pointer_cast<
ExternVar>(shared_from_this());
6517 return std::static_pointer_cast<
const ExternVar>(shared_from_this());
6555 const std::shared_ptr<Name>&
get_name() const noexcept {
6578 void set_name(std::shared_ptr<Name>&& name);
6583 void set_name(
const std::shared_ptr<Name>& name);
6645 void set_parent_in_children();
6653 #endif // !NMODL_AST_EXTERN_VAR_HPP 6654 #ifndef NMODL_AST_THREADSAFE_VAR_HPP 6655 #define NMODL_AST_THREADSAFE_VAR_HPP 6749 return "ThreadsafeVar";
6757 return std::static_pointer_cast<
ThreadsafeVar>(shared_from_this());
6764 return std::static_pointer_cast<
const ThreadsafeVar>(shared_from_this());
6802 const std::shared_ptr<Name>&
get_name() const noexcept {
6825 void set_name(std::shared_ptr<Name>&& name);
6830 void set_name(
const std::shared_ptr<Name>& name);
6892 void set_parent_in_children();
6900 #endif // !NMODL_AST_THREADSAFE_VAR_HPP 6901 #ifndef NMODL_AST_PARAM_BLOCK_HPP 6902 #define NMODL_AST_PARAM_BLOCK_HPP 7011 return "ParamBlock";
7026 return "PARAMETER ";
7033 return std::static_pointer_cast<
ParamBlock>(shared_from_this());
7040 return std::static_pointer_cast<
const ParamBlock>(shared_from_this());
7183 void set_parent_in_children();
7191 #endif // !NMODL_AST_PARAM_BLOCK_HPP 7192 #ifndef NMODL_AST_STEP_BLOCK_HPP 7193 #define NMODL_AST_STEP_BLOCK_HPP 7320 return std::static_pointer_cast<
StepBlock>(shared_from_this());
7327 return std::static_pointer_cast<
const StepBlock>(shared_from_this());
7470 void set_parent_in_children();
7478 #endif // !NMODL_AST_STEP_BLOCK_HPP 7479 #ifndef NMODL_AST_INDEPENDENT_BLOCK_HPP 7480 #define NMODL_AST_INDEPENDENT_BLOCK_HPP 7582 return "IndependentBlock";
7597 return "INDEPENDENT ";
7611 return std::static_pointer_cast<
const IndependentBlock>(shared_from_this());
7754 void set_parent_in_children();
7762 #endif // !NMODL_AST_INDEPENDENT_BLOCK_HPP 7763 #ifndef NMODL_AST_ASSIGNED_BLOCK_HPP 7764 #define NMODL_AST_ASSIGNED_BLOCK_HPP 7765 #define NMODL_AST_ASSIGNED_BLOCK_HPP_INLINE_DEFINITION_REQUIRED 7875 return "AssignedBlock";
7897 return std::static_pointer_cast<
AssignedBlock>(shared_from_this());
7904 return std::static_pointer_cast<
const AssignedBlock>(shared_from_this());
7946 void emplace_back_assigned_definition(std::shared_ptr<AssignedDefinition> n);
7951 AssignedDefinitionVector::const_iterator erase_assigned_definition(AssignedDefinitionVector::const_iterator first);
7956 AssignedDefinitionVector::const_iterator erase_assigned_definition(AssignedDefinitionVector::const_iterator first, AssignedDefinitionVector::const_iterator last);
7963 size_t erase_assigned_definition(std::unordered_set<AssignedDefinition*>& to_be_erased);
7968 AssignedDefinitionVector::const_iterator insert_assigned_definition(AssignedDefinitionVector::const_iterator position,
const std::shared_ptr<AssignedDefinition>& n);
7973 template <
class NodeType,
class InputIterator>
7974 void insert_assigned_definition(AssignedDefinitionVector::const_iterator position, NodeType& to, InputIterator first, InputIterator last);
7979 void reset_assigned_definition(AssignedDefinitionVector::const_iterator position,
AssignedDefinition* n);
7984 void reset_assigned_definition(AssignedDefinitionVector::const_iterator position, std::shared_ptr<AssignedDefinition> n);
8095 void set_parent_in_children();
8103 #endif // !NMODL_AST_ASSIGNED_BLOCK_HPP 8104 #ifndef NMODL_AST_STATE_BLOCK_HPP 8105 #define NMODL_AST_STATE_BLOCK_HPP 8213 return "StateBlock";
8235 return std::static_pointer_cast<
StateBlock>(shared_from_this());
8242 return std::static_pointer_cast<
const StateBlock>(shared_from_this());
8385 void set_parent_in_children();
8393 #endif // !NMODL_AST_STATE_BLOCK_HPP 8394 #ifndef NMODL_AST_PLOT_BLOCK_HPP 8395 #define NMODL_AST_PLOT_BLOCK_HPP 8423 std::shared_ptr<PlotDeclaration>
plot;
8435 explicit PlotBlock(
const std::shared_ptr<PlotDeclaration>& plot);
8507 return std::static_pointer_cast<
PlotBlock>(shared_from_this());
8514 return std::static_pointer_cast<
const PlotBlock>(shared_from_this());
8555 const std::shared_ptr<PlotDeclaration>&
get_plot() const noexcept {
8590 void set_plot(std::shared_ptr<PlotDeclaration>&& plot);
8595 void set_plot(
const std::shared_ptr<PlotDeclaration>& plot);
8657 void set_parent_in_children();
8665 #endif // !NMODL_AST_PLOT_BLOCK_HPP 8666 #ifndef NMODL_AST_INITIAL_BLOCK_HPP 8667 #define NMODL_AST_INITIAL_BLOCK_HPP 8710 explicit InitialBlock(
const std::shared_ptr<StatementBlock>& statement_block);
8774 return "InitialBlock";
8796 return std::static_pointer_cast<
InitialBlock>(shared_from_this());
8803 return std::static_pointer_cast<
const InitialBlock>(shared_from_this());
8845 return statement_block;
8879 void set_statement_block(std::shared_ptr<StatementBlock>&& statement_block);
8884 void set_statement_block(
const std::shared_ptr<StatementBlock>& statement_block);
8946 void set_parent_in_children();
8954 #endif // !NMODL_AST_INITIAL_BLOCK_HPP 8955 #ifndef NMODL_AST_CONSTRUCTOR_BLOCK_HPP 8956 #define NMODL_AST_CONSTRUCTOR_BLOCK_HPP 9001 explicit ConstructorBlock(
const std::shared_ptr<StatementBlock>& statement_block);
9065 return "ConstructorBlock";
9080 return "CONSTRUCTOR ";
9094 return std::static_pointer_cast<
const ConstructorBlock>(shared_from_this());
9136 return statement_block;
9170 void set_statement_block(std::shared_ptr<StatementBlock>&& statement_block);
9175 void set_statement_block(
const std::shared_ptr<StatementBlock>& statement_block);
9237 void set_parent_in_children();
9245 #endif // !NMODL_AST_CONSTRUCTOR_BLOCK_HPP 9246 #ifndef NMODL_AST_DESTRUCTOR_BLOCK_HPP 9247 #define NMODL_AST_DESTRUCTOR_BLOCK_HPP 9294 explicit DestructorBlock(
const std::shared_ptr<StatementBlock>& statement_block);
9358 return "DestructorBlock";
9373 return "DESTRUCTOR ";
9387 return std::static_pointer_cast<
const DestructorBlock>(shared_from_this());
9429 return statement_block;
9463 void set_statement_block(std::shared_ptr<StatementBlock>&& statement_block);
9468 void set_statement_block(
const std::shared_ptr<StatementBlock>& statement_block);
9530 void set_parent_in_children();
9538 #endif // !NMODL_AST_DESTRUCTOR_BLOCK_HPP 9539 #ifndef NMODL_AST_STATEMENT_BLOCK_HPP 9540 #define NMODL_AST_STATEMENT_BLOCK_HPP 9541 #define NMODL_AST_STATEMENT_BLOCK_HPP_INLINE_DEFINITION_REQUIRED 9650 return "StatementBlock";
9658 return std::static_pointer_cast<
StatementBlock>(shared_from_this());
9665 return std::static_pointer_cast<
const StatementBlock>(shared_from_this());
9702 void emplace_back_statement(
Statement *n);
9707 void emplace_back_statement(std::shared_ptr<Statement> n);
9712 StatementVector::const_iterator erase_statement(StatementVector::const_iterator first);
9717 StatementVector::const_iterator erase_statement(StatementVector::const_iterator first, StatementVector::const_iterator last);
9724 size_t erase_statement(std::unordered_set<Statement*>& to_be_erased);
9729 StatementVector::const_iterator insert_statement(StatementVector::const_iterator position,
const std::shared_ptr<Statement>& n);
9734 template <
class NodeType,
class InputIterator>
9735 void insert_statement(StatementVector::const_iterator position, NodeType& to, InputIterator first, InputIterator last);
9740 void reset_statement(StatementVector::const_iterator position,
Statement* n);
9745 void reset_statement(StatementVector::const_iterator position, std::shared_ptr<Statement> n);
9856 void set_parent_in_children();
9864 #endif // !NMODL_AST_STATEMENT_BLOCK_HPP 9865 #ifndef NMODL_AST_DERIVATIVE_BLOCK_HPP 9866 #define NMODL_AST_DERIVATIVE_BLOCK_HPP 9911 explicit DerivativeBlock(
const std::shared_ptr<Name>& name,
const std::shared_ptr<StatementBlock>& statement_block);
9975 return "DerivativeBlock";
9990 return "DERIVATIVE ";
10004 return std::static_pointer_cast<
const DerivativeBlock>(shared_from_this());
10017 return token.get();
10071 return statement_block;
10097 symtab = newsymtab;
10105 void set_name(std::shared_ptr<Name>&& name);
10110 void set_name(
const std::shared_ptr<Name>& name);
10116 void set_statement_block(std::shared_ptr<StatementBlock>&& statement_block);
10121 void set_statement_block(
const std::shared_ptr<StatementBlock>& statement_block);
10183 void set_parent_in_children();
10191 #endif // !NMODL_AST_DERIVATIVE_BLOCK_HPP 10192 #ifndef NMODL_AST_LINEAR_BLOCK_HPP 10193 #define NMODL_AST_LINEAR_BLOCK_HPP 10243 explicit LinearBlock(
const std::shared_ptr<Name>& name,
const NameVector& solvefor,
const std::shared_ptr<StatementBlock>& statement_block);
10307 return "LinearBlock";
10329 return std::static_pointer_cast<
LinearBlock>(shared_from_this());
10336 return std::static_pointer_cast<
const LinearBlock>(shared_from_this());
10349 return token.get();
10416 return statement_block;
10442 symtab = newsymtab;
10450 void set_name(std::shared_ptr<Name>&& name);
10455 void set_name(
const std::shared_ptr<Name>& name);
10466 void set_solvefor(
const NameVector& solvefor);
10472 void set_statement_block(std::shared_ptr<StatementBlock>&& statement_block);
10477 void set_statement_block(
const std::shared_ptr<StatementBlock>& statement_block);
10539 void set_parent_in_children();
10547 #endif // !NMODL_AST_LINEAR_BLOCK_HPP 10548 #ifndef NMODL_AST_NON_LINEAR_BLOCK_HPP 10549 #define NMODL_AST_NON_LINEAR_BLOCK_HPP 10596 explicit NonLinearBlock(
const std::shared_ptr<Name>& name,
const NameVector& solvefor,
const std::shared_ptr<StatementBlock>& statement_block);
10660 return "NonLinearBlock";
10675 return "NONLINEAR ";
10682 return std::static_pointer_cast<
NonLinearBlock>(shared_from_this());
10689 return std::static_pointer_cast<
const NonLinearBlock>(shared_from_this());
10702 return token.get();
10769 return statement_block;
10795 symtab = newsymtab;
10803 void set_name(std::shared_ptr<Name>&& name);
10808 void set_name(
const std::shared_ptr<Name>& name);
10819 void set_solvefor(
const NameVector& solvefor);
10825 void set_statement_block(std::shared_ptr<StatementBlock>&& statement_block);
10830 void set_statement_block(
const std::shared_ptr<StatementBlock>& statement_block);
10892 void set_parent_in_children();
10900 #endif // !NMODL_AST_NON_LINEAR_BLOCK_HPP 10901 #ifndef NMODL_AST_DISCRETE_BLOCK_HPP 10902 #define NMODL_AST_DISCRETE_BLOCK_HPP 10936 explicit DiscreteBlock(
const std::shared_ptr<Name>& name,
const std::shared_ptr<StatementBlock>& statement_block);
11000 return "DiscreteBlock";
11015 return "DISCRETE ";
11022 return std::static_pointer_cast<
DiscreteBlock>(shared_from_this());
11029 return std::static_pointer_cast<
const DiscreteBlock>(shared_from_this());
11042 return token.get();
11096 return statement_block;
11122 symtab = newsymtab;
11130 void set_name(std::shared_ptr<Name>&& name);
11135 void set_name(
const std::shared_ptr<Name>& name);
11141 void set_statement_block(std::shared_ptr<StatementBlock>&& statement_block);
11146 void set_statement_block(
const std::shared_ptr<StatementBlock>& statement_block);
11208 void set_parent_in_children();
11216 #endif // !NMODL_AST_DISCRETE_BLOCK_HPP 11217 #ifndef NMODL_AST_PARTIAL_BLOCK_HPP 11218 #define NMODL_AST_PARTIAL_BLOCK_HPP 11252 explicit PartialBlock(
const std::shared_ptr<Name>& name,
const std::shared_ptr<StatementBlock>& statement_block);
11316 return "PartialBlock";
11338 return std::static_pointer_cast<
PartialBlock>(shared_from_this());
11345 return std::static_pointer_cast<
const PartialBlock>(shared_from_this());
11358 return token.get();
11412 return statement_block;
11438 symtab = newsymtab;
11446 void set_name(std::shared_ptr<Name>&& name);
11451 void set_name(
const std::shared_ptr<Name>& name);
11457 void set_statement_block(std::shared_ptr<StatementBlock>&& statement_block);
11462 void set_statement_block(
const std::shared_ptr<StatementBlock>& statement_block);
11524 void set_parent_in_children();
11532 #endif // !NMODL_AST_PARTIAL_BLOCK_HPP 11533 #ifndef NMODL_AST_FUNCTION_TABLE_BLOCK_HPP 11534 #define NMODL_AST_FUNCTION_TABLE_BLOCK_HPP 11634 return "FunctionTableBlock";
11649 return "FUNCTION_TABLE ";
11676 return token.get();
11769 symtab = newsymtab;
11777 void set_name(std::shared_ptr<Name>&& name);
11782 void set_name(
const std::shared_ptr<Name>& name);
11799 void set_unit(std::shared_ptr<Unit>&& unit);
11804 void set_unit(
const std::shared_ptr<Unit>& unit);
11866 void set_parent_in_children();
11874 #endif // !NMODL_AST_FUNCTION_TABLE_BLOCK_HPP 11875 #ifndef NMODL_AST_FUNCTION_BLOCK_HPP 11876 #define NMODL_AST_FUNCTION_BLOCK_HPP 11914 explicit FunctionBlock(
const std::shared_ptr<Name>& name,
const ArgumentVector& parameters,
const std::shared_ptr<Unit>& unit,
const std::shared_ptr<StatementBlock>& statement_block);
11978 return "FunctionBlock";
11993 return "FUNCTION ";
12000 return std::static_pointer_cast<
FunctionBlock>(shared_from_this());
12007 return std::static_pointer_cast<
const FunctionBlock>(shared_from_this());
12020 return token.get();
12100 return statement_block;
12126 symtab = newsymtab;
12134 void set_name(std::shared_ptr<Name>&& name);
12139 void set_name(
const std::shared_ptr<Name>& name);
12156 void set_unit(std::shared_ptr<Unit>&& unit);
12161 void set_unit(
const std::shared_ptr<Unit>& unit);
12167 void set_statement_block(std::shared_ptr<StatementBlock>&& statement_block);
12172 void set_statement_block(
const std::shared_ptr<StatementBlock>& statement_block);
12234 void set_parent_in_children();
12242 #endif // !NMODL_AST_FUNCTION_BLOCK_HPP 12243 #ifndef NMODL_AST_PROCEDURE_BLOCK_HPP 12244 #define NMODL_AST_PROCEDURE_BLOCK_HPP 12282 explicit ProcedureBlock(
const std::shared_ptr<Name>& name,
const ArgumentVector& parameters,
const std::shared_ptr<Unit>& unit,
const std::shared_ptr<StatementBlock>& statement_block);
12346 return "ProcedureBlock";
12361 return "PROCEDURE ";
12368 return std::static_pointer_cast<
ProcedureBlock>(shared_from_this());
12375 return std::static_pointer_cast<
const ProcedureBlock>(shared_from_this());
12388 return token.get();
12468 return statement_block;
12494 symtab = newsymtab;
12502 void set_name(std::shared_ptr<Name>&& name);
12507 void set_name(
const std::shared_ptr<Name>& name);
12524 void set_unit(std::shared_ptr<Unit>&& unit);
12529 void set_unit(
const std::shared_ptr<Unit>& unit);
12535 void set_statement_block(std::shared_ptr<StatementBlock>&& statement_block);
12540 void set_statement_block(
const std::shared_ptr<StatementBlock>& statement_block);
12602 void set_parent_in_children();
12610 #endif // !NMODL_AST_PROCEDURE_BLOCK_HPP 12611 #ifndef NMODL_AST_NET_RECEIVE_BLOCK_HPP 12612 #define NMODL_AST_NET_RECEIVE_BLOCK_HPP 12710 return "NetReceiveBlock";
12725 return "NET_RECEIVE ";
12732 return std::static_pointer_cast<
NetReceiveBlock>(shared_from_this());
12739 return std::static_pointer_cast<
const NetReceiveBlock>(shared_from_this());
12752 return token.get();
12794 return statement_block;
12820 symtab = newsymtab;
12839 void set_statement_block(std::shared_ptr<StatementBlock>&& statement_block);
12844 void set_statement_block(
const std::shared_ptr<StatementBlock>& statement_block);
12906 void set_parent_in_children();
12914 #endif // !NMODL_AST_NET_RECEIVE_BLOCK_HPP 12915 #ifndef NMODL_AST_SOLVE_BLOCK_HPP 12916 #define NMODL_AST_SOLVE_BLOCK_HPP 12954 explicit SolveBlock(
const std::shared_ptr<Name>& block_name,
const std::shared_ptr<Name>& method,
const std::shared_ptr<Name>& steadystate,
const std::shared_ptr<StatementBlock>& ifsolerr);
13018 return "SolveBlock";
13040 return std::static_pointer_cast<
SolveBlock>(shared_from_this());
13047 return std::static_pointer_cast<
const SolveBlock>(shared_from_this());
13060 return token.get();
13115 return steadystate;
13154 symtab = newsymtab;
13162 void set_block_name(std::shared_ptr<Name>&& block_name);
13167 void set_block_name(
const std::shared_ptr<Name>& block_name);
13173 void set_method(std::shared_ptr<Name>&& method);
13178 void set_method(
const std::shared_ptr<Name>& method);
13184 void set_steadystate(std::shared_ptr<Name>&& steadystate);
13189 void set_steadystate(
const std::shared_ptr<Name>& steadystate);
13195 void set_ifsolerr(std::shared_ptr<StatementBlock>&& ifsolerr);
13200 void set_ifsolerr(
const std::shared_ptr<StatementBlock>& ifsolerr);
13262 void set_parent_in_children();
13270 #endif // !NMODL_AST_SOLVE_BLOCK_HPP 13271 #ifndef NMODL_AST_BREAKPOINT_BLOCK_HPP 13272 #define NMODL_AST_BREAKPOINT_BLOCK_HPP 13319 explicit BreakpointBlock(
const std::shared_ptr<StatementBlock>& statement_block);
13383 return "BreakpointBlock";
13398 return "BREAKPOINT ";
13405 return std::static_pointer_cast<
BreakpointBlock>(shared_from_this());
13412 return std::static_pointer_cast<
const BreakpointBlock>(shared_from_this());
13425 return token.get();
13454 return statement_block;
13480 symtab = newsymtab;
13488 void set_statement_block(std::shared_ptr<StatementBlock>&& statement_block);
13493 void set_statement_block(
const std::shared_ptr<StatementBlock>& statement_block);
13555 void set_parent_in_children();
13563 #endif // !NMODL_AST_BREAKPOINT_BLOCK_HPP 13564 #ifndef NMODL_AST_TERMINAL_BLOCK_HPP 13565 #define NMODL_AST_TERMINAL_BLOCK_HPP 13597 explicit TerminalBlock(
const std::shared_ptr<StatementBlock>& statement_block);
13661 return "TerminalBlock";
13676 return "TERMINAL ";
13683 return std::static_pointer_cast<
TerminalBlock>(shared_from_this());
13690 return std::static_pointer_cast<
const TerminalBlock>(shared_from_this());
13703 return token.get();
13732 return statement_block;
13758 symtab = newsymtab;
13766 void set_statement_block(std::shared_ptr<StatementBlock>&& statement_block);
13771 void set_statement_block(
const std::shared_ptr<StatementBlock>& statement_block);
13833 void set_parent_in_children();
13841 #endif // !NMODL_AST_TERMINAL_BLOCK_HPP 13842 #ifndef NMODL_AST_BEFORE_BLOCK_HPP 13843 #define NMODL_AST_BEFORE_BLOCK_HPP 13875 explicit BeforeBlock(
const std::shared_ptr<BABlock>& bablock);
13939 return "BeforeBlock";
13961 return std::static_pointer_cast<
BeforeBlock>(shared_from_this());
13968 return std::static_pointer_cast<
const BeforeBlock>(shared_from_this());
13981 return token.get();
14036 symtab = newsymtab;
14044 void set_bablock(std::shared_ptr<BABlock>&& bablock);
14049 void set_bablock(
const std::shared_ptr<BABlock>& bablock);
14111 void set_parent_in_children();
14119 #endif // !NMODL_AST_BEFORE_BLOCK_HPP 14120 #ifndef NMODL_AST_AFTER_BLOCK_HPP 14121 #define NMODL_AST_AFTER_BLOCK_HPP 14151 class AfterBlock :
public Block {
14154 std::shared_ptr<BABlock> bablock;
14156 std::shared_ptr<ModToken> token;
14158 symtab::SymbolTable* symtab =
nullptr;
14165 explicit AfterBlock(BABlock* bablock);
14166 explicit AfterBlock(
const std::shared_ptr<BABlock>& bablock);
14167 AfterBlock(
const AfterBlock& obj);
14170 virtual ~AfterBlock() =
default;
14230 return "AfterBlock";
14252 return std::static_pointer_cast<
AfterBlock>(shared_from_this());
14259 return std::static_pointer_cast<
const AfterBlock>(shared_from_this());
14272 return token.get();
14327 symtab = newsymtab;
14335 void set_bablock(std::shared_ptr<BABlock>&& bablock);
14340 void set_bablock(
const std::shared_ptr<BABlock>& bablock);
14402 void set_parent_in_children();
14410 #endif // !NMODL_AST_AFTER_BLOCK_HPP 14411 #ifndef NMODL_AST_BA_BLOCK_HPP 14412 #define NMODL_AST_BA_BLOCK_HPP 14448 explicit BABlock(
const std::shared_ptr<BABlockType>& type,
const std::shared_ptr<StatementBlock>& statement_block);
14452 virtual ~
BABlock() =
default;
14520 return std::static_pointer_cast<
BABlock>(shared_from_this());
14527 return std::static_pointer_cast<
const BABlock>(shared_from_this());
14540 return token.get();
14568 const std::shared_ptr<BABlockType>&
get_type() const noexcept {
14582 return statement_block;
14608 symtab = newsymtab;
14616 void set_type(std::shared_ptr<BABlockType>&& type);
14621 void set_type(
const std::shared_ptr<BABlockType>& type);
14627 void set_statement_block(std::shared_ptr<StatementBlock>&& statement_block);
14632 void set_statement_block(
const std::shared_ptr<StatementBlock>& statement_block);
14694 void set_parent_in_children();
14702 #endif // !NMODL_AST_BA_BLOCK_HPP 14703 #ifndef NMODL_AST_FOR_NETCON_HPP 14704 #define NMODL_AST_FOR_NETCON_HPP 14738 explicit ForNetcon(
const ArgumentVector& parameters,
const std::shared_ptr<StatementBlock>& statement_block);
14802 return "ForNetcon";
14817 return "FOR_NETCONS ";
14824 return std::static_pointer_cast<
ForNetcon>(shared_from_this());
14831 return std::static_pointer_cast<
const ForNetcon>(shared_from_this());
14844 return token.get();
14886 return statement_block;
14912 symtab = newsymtab;
14931 void set_statement_block(std::shared_ptr<StatementBlock>&& statement_block);
14936 void set_statement_block(
const std::shared_ptr<StatementBlock>& statement_block);
14998 void set_parent_in_children();
15006 #endif // !NMODL_AST_FOR_NETCON_HPP 15007 #ifndef NMODL_AST_KINETIC_BLOCK_HPP 15008 #define NMODL_AST_KINETIC_BLOCK_HPP 15044 explicit KineticBlock(
const std::shared_ptr<Name>& name,
const NameVector& solvefor,
const std::shared_ptr<StatementBlock>& statement_block);
15108 return "KineticBlock";
15130 return std::static_pointer_cast<
KineticBlock>(shared_from_this());
15137 return std::static_pointer_cast<
const KineticBlock>(shared_from_this());
15150 return token.get();
15217 return statement_block;
15243 symtab = newsymtab;
15251 void set_name(std::shared_ptr<Name>&& name);
15256 void set_name(
const std::shared_ptr<Name>& name);
15267 void set_solvefor(
const NameVector& solvefor);
15273 void set_statement_block(std::shared_ptr<StatementBlock>&& statement_block);
15278 void set_statement_block(
const std::shared_ptr<StatementBlock>& statement_block);
15340 void set_parent_in_children();
15348 #endif // !NMODL_AST_KINETIC_BLOCK_HPP 15349 #ifndef NMODL_AST_MATCH_BLOCK_HPP 15350 #define NMODL_AST_MATCH_BLOCK_HPP 15445 return "MatchBlock";
15467 return std::static_pointer_cast<
MatchBlock>(shared_from_this());
15474 return std::static_pointer_cast<
const MatchBlock>(shared_from_this());
15487 return token.get();
15542 symtab = newsymtab;
15617 void set_parent_in_children();
15625 #endif // !NMODL_AST_MATCH_BLOCK_HPP 15626 #ifndef NMODL_AST_UNIT_BLOCK_HPP 15627 #define NMODL_AST_UNIT_BLOCK_HPP 15722 return "UnitBlock";
15744 return std::static_pointer_cast<
UnitBlock>(shared_from_this());
15751 return std::static_pointer_cast<
const UnitBlock>(shared_from_this());
15764 return token.get();
15793 return definitions;
15819 symtab = newsymtab;
15894 void set_parent_in_children();
15902 #endif // !NMODL_AST_UNIT_BLOCK_HPP 15903 #ifndef NMODL_AST_CONSTANT_BLOCK_HPP 15904 #define NMODL_AST_CONSTANT_BLOCK_HPP 16010 return "ConstantBlock";
16025 return "CONSTANT ";
16032 return std::static_pointer_cast<
ConstantBlock>(shared_from_this());
16039 return std::static_pointer_cast<
const ConstantBlock>(shared_from_this());
16052 return token.get();
16107 symtab = newsymtab;
16182 void set_parent_in_children();
16190 #endif // !NMODL_AST_CONSTANT_BLOCK_HPP 16191 #ifndef NMODL_AST_NEURON_BLOCK_HPP 16192 #define NMODL_AST_NEURON_BLOCK_HPP 16239 explicit NeuronBlock(
const std::shared_ptr<StatementBlock>& statement_block);
16303 return "NeuronBlock";
16325 return std::static_pointer_cast<
NeuronBlock>(shared_from_this());
16332 return std::static_pointer_cast<
const NeuronBlock>(shared_from_this());
16345 return token.get();
16374 return statement_block;
16400 symtab = newsymtab;
16408 void set_statement_block(std::shared_ptr<StatementBlock>&& statement_block);
16413 void set_statement_block(
const std::shared_ptr<StatementBlock>& statement_block);
16475 void set_parent_in_children();
16483 #endif // !NMODL_AST_NEURON_BLOCK_HPP 16484 #ifndef NMODL_AST_UNIT_HPP 16485 #define NMODL_AST_UNIT_HPP 16515 explicit Unit(
const std::shared_ptr<String>& name);
16519 virtual ~
Unit() =
default;
16547 return new Unit(*
this);
16587 return std::static_pointer_cast<
Unit>(shared_from_this());
16594 return std::static_pointer_cast<
const Unit>(shared_from_this());
16607 return token.get();
16655 void set_name(std::shared_ptr<String>&& name);
16660 void set_name(
const std::shared_ptr<String>& name);
16722 void set_parent_in_children();
16730 #endif // !NMODL_AST_UNIT_HPP 16731 #ifndef NMODL_AST_DOUBLE_UNIT_HPP 16732 #define NMODL_AST_DOUBLE_UNIT_HPP 16764 explicit DoubleUnit(
const std::shared_ptr<Double>& value,
const std::shared_ptr<Unit>& unit);
16828 return "DoubleUnit";
16836 return std::static_pointer_cast<
DoubleUnit>(shared_from_this());
16843 return std::static_pointer_cast<
const DoubleUnit>(shared_from_this());
16856 return token.get();
16905 void set_value(std::shared_ptr<Double>&& value);
16910 void set_value(
const std::shared_ptr<Double>& value);
16916 void set_unit(std::shared_ptr<Unit>&& unit);
16921 void set_unit(
const std::shared_ptr<Unit>& unit);
16983 void set_parent_in_children();
16991 #endif // !NMODL_AST_DOUBLE_UNIT_HPP 16992 #ifndef NMODL_AST_LOCAL_VAR_HPP 16993 #define NMODL_AST_LOCAL_VAR_HPP 17023 explicit LocalVar(
const std::shared_ptr<Identifier>& name);
17095 return std::static_pointer_cast<
LocalVar>(shared_from_this());
17102 return std::static_pointer_cast<
const LocalVar>(shared_from_this());
17115 return token.get();
17140 const std::shared_ptr<Identifier>&
get_name() const noexcept {
17163 void set_name(std::shared_ptr<Identifier>&& name);
17168 void set_name(
const std::shared_ptr<Identifier>& name);
17230 void set_parent_in_children();
17238 #endif // !NMODL_AST_LOCAL_VAR_HPP 17239 #ifndef NMODL_AST_LIMITS_HPP 17240 #define NMODL_AST_LIMITS_HPP 17272 explicit Limits(
const std::shared_ptr<Double>& min,
const std::shared_ptr<Double>& max);
17276 virtual ~
Limits() =
default;
17304 return new Limits(*
this);
17344 return std::static_pointer_cast<
Limits>(shared_from_this());
17351 return std::static_pointer_cast<
const Limits>(shared_from_this());
17364 return token.get();
17377 const std::shared_ptr<Double>&
get_min() const noexcept {
17390 const std::shared_ptr<Double>&
get_max() const noexcept {
17413 void set_min(std::shared_ptr<Double>&& min);
17418 void set_min(
const std::shared_ptr<Double>& min);
17424 void set_max(std::shared_ptr<Double>&& max);
17429 void set_max(
const std::shared_ptr<Double>& max);
17491 void set_parent_in_children();
17499 #endif // !NMODL_AST_LIMITS_HPP 17500 #ifndef NMODL_AST_NUMBER_RANGE_HPP 17501 #define NMODL_AST_NUMBER_RANGE_HPP 17533 explicit NumberRange(
const std::shared_ptr<Number>& min,
const std::shared_ptr<Number>& max);
17597 return "NumberRange";
17605 return std::static_pointer_cast<
NumberRange>(shared_from_this());
17612 return std::static_pointer_cast<
const NumberRange>(shared_from_this());
17625 return token.get();
17638 const std::shared_ptr<Number>&
get_min() const noexcept {
17651 const std::shared_ptr<Number>&
get_max() const noexcept {
17674 void set_min(std::shared_ptr<Number>&& min);
17679 void set_min(
const std::shared_ptr<Number>& min);
17685 void set_max(std::shared_ptr<Number>&& max);
17690 void set_max(
const std::shared_ptr<Number>& max);
17752 void set_parent_in_children();
17760 #endif // !NMODL_AST_NUMBER_RANGE_HPP 17761 #ifndef NMODL_AST_PLOT_VAR_HPP 17762 #define NMODL_AST_PLOT_VAR_HPP 17794 explicit PlotVar(
const std::shared_ptr<Identifier>& name,
const std::shared_ptr<Integer>& index);
17798 virtual ~
PlotVar() =
default;
17866 return std::static_pointer_cast<
PlotVar>(shared_from_this());
17873 return std::static_pointer_cast<
const PlotVar>(shared_from_this());
17886 return token.get();
17899 const std::shared_ptr<Identifier>&
get_name() const noexcept {
17935 void set_name(std::shared_ptr<Identifier>&& name);
17940 void set_name(
const std::shared_ptr<Identifier>& name);
17946 void set_index(std::shared_ptr<Integer>&& index);
17951 void set_index(
const std::shared_ptr<Integer>& index);
18013 void set_parent_in_children();
18021 #endif // !NMODL_AST_PLOT_VAR_HPP 18022 #ifndef NMODL_AST_CONSTANT_VAR_HPP 18023 #define NMODL_AST_CONSTANT_VAR_HPP 18057 explicit ConstantVar(
const std::shared_ptr<Name>& name,
const std::shared_ptr<Number>& value,
const std::shared_ptr<Unit>& unit);
18121 return "ConstantVar";
18129 return std::static_pointer_cast<
ConstantVar>(shared_from_this());
18136 return std::static_pointer_cast<
const ConstantVar>(shared_from_this());
18149 return token.get();
18223 void set_name(std::shared_ptr<Name>&& name);
18228 void set_name(
const std::shared_ptr<Name>& name);
18234 void set_value(std::shared_ptr<Number>&& value);
18239 void set_value(
const std::shared_ptr<Number>& value);
18245 void set_unit(std::shared_ptr<Unit>&& unit);
18250 void set_unit(
const std::shared_ptr<Unit>& unit);
18312 void set_parent_in_children();
18320 #endif // !NMODL_AST_CONSTANT_VAR_HPP 18321 #ifndef NMODL_AST_BINARY_OPERATOR_HPP 18322 #define NMODL_AST_BINARY_OPERATOR_HPP 18416 return "BinaryOperator";
18424 return std::static_pointer_cast<
BinaryOperator>(shared_from_this());
18431 return std::static_pointer_cast<
const BinaryOperator>(shared_from_this());
18444 return token.get();
18553 void set_parent_in_children();
18561 #endif // !NMODL_AST_BINARY_OPERATOR_HPP 18562 #ifndef NMODL_AST_UNARY_OPERATOR_HPP 18563 #define NMODL_AST_UNARY_OPERATOR_HPP 18657 return "UnaryOperator";
18665 return std::static_pointer_cast<
UnaryOperator>(shared_from_this());
18672 return std::static_pointer_cast<
const UnaryOperator>(shared_from_this());
18685 return token.get();
18721 void set_value(
UnaryOp value);
18794 void set_parent_in_children();
18802 #endif // !NMODL_AST_UNARY_OPERATOR_HPP 18803 #ifndef NMODL_AST_REACTION_OPERATOR_HPP 18804 #define NMODL_AST_REACTION_OPERATOR_HPP 18898 return "ReactionOperator";
18913 return std::static_pointer_cast<
const ReactionOperator>(shared_from_this());
18926 return token.get();
19035 void set_parent_in_children();
19043 #endif // !NMODL_AST_REACTION_OPERATOR_HPP 19044 #ifndef NMODL_AST_PAREN_EXPRESSION_HPP 19045 #define NMODL_AST_PAREN_EXPRESSION_HPP 19075 explicit ParenExpression(
const std::shared_ptr<Expression>& expression);
19139 return "ParenExpression";
19147 return std::static_pointer_cast<
ParenExpression>(shared_from_this());
19154 return std::static_pointer_cast<
const ParenExpression>(shared_from_this());
19167 return token.get();
19203 void set_expression(std::shared_ptr<Expression>&& expression);
19208 void set_expression(
const std::shared_ptr<Expression>& expression);
19270 void set_parent_in_children();
19278 #endif // !NMODL_AST_PAREN_EXPRESSION_HPP 19279 #ifndef NMODL_AST_BINARY_EXPRESSION_HPP 19280 #define NMODL_AST_BINARY_EXPRESSION_HPP 19391 return "BinaryExpression";
19406 return std::static_pointer_cast<
const BinaryExpression>(shared_from_this());
19419 return token.get();
19432 const std::shared_ptr<Expression>&
get_lhs() const noexcept {
19458 const std::shared_ptr<Expression>&
get_rhs() const noexcept {
19481 void set_lhs(std::shared_ptr<Expression>&& lhs);
19486 void set_lhs(
const std::shared_ptr<Expression>& lhs);
19503 void set_rhs(std::shared_ptr<Expression>&& rhs);
19508 void set_rhs(
const std::shared_ptr<Expression>& rhs);
19570 void set_parent_in_children();
19578 #endif // !NMODL_AST_BINARY_EXPRESSION_HPP 19579 #ifndef NMODL_AST_DIFF_EQ_EXPRESSION_HPP 19580 #define NMODL_AST_DIFF_EQ_EXPRESSION_HPP 19610 explicit DiffEqExpression(
const std::shared_ptr<BinaryExpression>& expression);
19674 return "DiffEqExpression";
19689 return std::static_pointer_cast<
const DiffEqExpression>(shared_from_this());
19702 return token.get();
19738 void set_expression(std::shared_ptr<BinaryExpression>&& expression);
19743 void set_expression(
const std::shared_ptr<BinaryExpression>& expression);
19805 void set_parent_in_children();
19813 #endif // !NMODL_AST_DIFF_EQ_EXPRESSION_HPP 19814 #ifndef NMODL_AST_UNARY_EXPRESSION_HPP 19815 #define NMODL_AST_UNARY_EXPRESSION_HPP 19911 return "UnaryExpression";
19919 return std::static_pointer_cast<
UnaryExpression>(shared_from_this());
19926 return std::static_pointer_cast<
const UnaryExpression>(shared_from_this());
19939 return token.get();
19999 void set_expression(std::shared_ptr<Expression>&& expression);
20004 void set_expression(
const std::shared_ptr<Expression>& expression);
20066 void set_parent_in_children();
20074 #endif // !NMODL_AST_UNARY_EXPRESSION_HPP 20075 #ifndef NMODL_AST_NON_LIN_EQUATION_HPP 20076 #define NMODL_AST_NON_LIN_EQUATION_HPP 20108 explicit NonLinEquation(
const std::shared_ptr<Expression>& lhs,
const std::shared_ptr<Expression>& rhs);
20172 return "NonLinEquation";
20194 return std::static_pointer_cast<
NonLinEquation>(shared_from_this());
20201 return std::static_pointer_cast<
const NonLinEquation>(shared_from_this());
20214 return token.get();
20227 const std::shared_ptr<Expression>&
get_lhs() const noexcept {
20240 const std::shared_ptr<Expression>&
get_rhs() const noexcept {
20263 void set_lhs(std::shared_ptr<Expression>&& lhs);
20268 void set_lhs(
const std::shared_ptr<Expression>& lhs);
20274 void set_rhs(std::shared_ptr<Expression>&& rhs);
20279 void set_rhs(
const std::shared_ptr<Expression>& rhs);
20341 void set_parent_in_children();
20349 #endif // !NMODL_AST_NON_LIN_EQUATION_HPP 20350 #ifndef NMODL_AST_LIN_EQUATION_HPP 20351 #define NMODL_AST_LIN_EQUATION_HPP 20383 explicit LinEquation(
const std::shared_ptr<Expression>& left_linxpression,
const std::shared_ptr<Expression>& linxpression);
20447 return "LinEquation";
20469 return std::static_pointer_cast<
LinEquation>(shared_from_this());
20476 return std::static_pointer_cast<
const LinEquation>(shared_from_this());
20489 return token.get();
20503 return left_linxpression;
20516 return linxpression;
20538 void set_left_linxpression(std::shared_ptr<Expression>&& left_linxpression);
20543 void set_left_linxpression(
const std::shared_ptr<Expression>& left_linxpression);
20549 void set_linxpression(std::shared_ptr<Expression>&& linxpression);
20554 void set_linxpression(
const std::shared_ptr<Expression>& linxpression);
20616 void set_parent_in_children();
20624 #endif // !NMODL_AST_LIN_EQUATION_HPP 20625 #ifndef NMODL_AST_FUNCTION_CALL_HPP 20626 #define NMODL_AST_FUNCTION_CALL_HPP 20722 return "FunctionCall";
20730 return std::static_pointer_cast<
FunctionCall>(shared_from_this());
20737 return std::static_pointer_cast<
const FunctionCall>(shared_from_this());
20750 return token.get();
20811 void set_name(std::shared_ptr<Name>&& name);
20816 void set_name(
const std::shared_ptr<Name>& name);
20889 void set_parent_in_children();
20897 #endif // !NMODL_AST_FUNCTION_CALL_HPP 20898 #ifndef NMODL_AST_FIRST_LAST_TYPE_INDEX_HPP 20899 #define NMODL_AST_FIRST_LAST_TYPE_INDEX_HPP 20992 return "FirstLastTypeIndex";
21020 return token.get();
21129 void set_parent_in_children();
21137 #endif // !NMODL_AST_FIRST_LAST_TYPE_INDEX_HPP 21138 #ifndef NMODL_AST_WATCH_HPP 21139 #define NMODL_AST_WATCH_HPP 21171 explicit Watch(
const std::shared_ptr<Expression>& expression,
const std::shared_ptr<Expression>& value);
21175 virtual ~
Watch() =
default;
21203 return new Watch(*
this);
21243 return std::static_pointer_cast<
Watch>(shared_from_this());
21250 return std::static_pointer_cast<
const Watch>(shared_from_this());
21263 return token.get();
21312 void set_expression(std::shared_ptr<Expression>&& expression);
21317 void set_expression(
const std::shared_ptr<Expression>& expression);
21323 void set_value(std::shared_ptr<Expression>&& value);
21328 void set_value(
const std::shared_ptr<Expression>& value);
21390 void set_parent_in_children();
21398 #endif // !NMODL_AST_WATCH_HPP 21399 #ifndef NMODL_AST_QUEUE_EXPRESSION_TYPE_HPP 21400 #define NMODL_AST_QUEUE_EXPRESSION_TYPE_HPP 21493 return "QueueExpressionType";
21521 return token.get();
21630 void set_parent_in_children();
21638 #endif // !NMODL_AST_QUEUE_EXPRESSION_TYPE_HPP 21639 #ifndef NMODL_AST_MATCH_HPP 21640 #define NMODL_AST_MATCH_HPP 21672 explicit Match(
const std::shared_ptr<Identifier>& name,
const std::shared_ptr<Expression>& expression);
21676 virtual ~
Match() =
default;
21704 return new Match(*
this);
21744 return std::static_pointer_cast<
Match>(shared_from_this());
21751 return std::static_pointer_cast<
const Match>(shared_from_this());
21764 return token.get();
21777 const std::shared_ptr<Identifier>&
get_name() const noexcept {
21813 void set_name(std::shared_ptr<Identifier>&& name);
21818 void set_name(
const std::shared_ptr<Identifier>& name);
21824 void set_expression(std::shared_ptr<Expression>&& expression);
21829 void set_expression(
const std::shared_ptr<Expression>& expression);
21891 void set_parent_in_children();
21899 #endif // !NMODL_AST_MATCH_HPP 21900 #ifndef NMODL_AST_BA_BLOCK_TYPE_HPP 21901 #define NMODL_AST_BA_BLOCK_TYPE_HPP 21998 return "BABlockType";
22006 return std::static_pointer_cast<
BABlockType>(shared_from_this());
22013 return std::static_pointer_cast<
const BABlockType>(shared_from_this());
22026 return token.get();
22062 void set_value(
BAType value);
22135 void set_parent_in_children();
22143 #endif // !NMODL_AST_BA_BLOCK_TYPE_HPP 22144 #ifndef NMODL_AST_UNIT_DEF_HPP 22145 #define NMODL_AST_UNIT_DEF_HPP 22177 explicit UnitDef(
const std::shared_ptr<Unit>& unit1,
const std::shared_ptr<Unit>& unit2);
22181 virtual ~
UnitDef() =
default;
22249 return std::static_pointer_cast<
UnitDef>(shared_from_this());
22256 return std::static_pointer_cast<
const UnitDef>(shared_from_this());
22269 return token.get();
22330 void set_unit1(std::shared_ptr<Unit>&& unit1);
22335 void set_unit1(
const std::shared_ptr<Unit>& unit1);
22341 void set_unit2(std::shared_ptr<Unit>&& unit2);
22346 void set_unit2(
const std::shared_ptr<Unit>& unit2);
22408 void set_parent_in_children();
22416 #endif // !NMODL_AST_UNIT_DEF_HPP 22417 #ifndef NMODL_AST_FACTOR_DEF_HPP 22418 #define NMODL_AST_FACTOR_DEF_HPP 22456 explicit FactorDef(
const std::shared_ptr<Name>& name,
const std::shared_ptr<Double>& value,
const std::shared_ptr<Unit>& unit1,
const std::shared_ptr<Boolean>& gt,
const std::shared_ptr<Unit>& unit2);
22521 return "FactorDef";
22529 return std::static_pointer_cast<
FactorDef>(shared_from_this());
22536 return std::static_pointer_cast<
const FactorDef>(shared_from_this());
22549 return token.get();
22613 const std::shared_ptr<Boolean>&
get_gt() const noexcept {
22649 void set_name(std::shared_ptr<Name>&& name);
22654 void set_name(
const std::shared_ptr<Name>& name);
22660 void set_value(std::shared_ptr<Double>&& value);
22665 void set_value(
const std::shared_ptr<Double>& value);
22671 void set_unit1(std::shared_ptr<Unit>&& unit1);
22676 void set_unit1(
const std::shared_ptr<Unit>& unit1);
22682 void set_gt(std::shared_ptr<Boolean>&& gt);
22687 void set_gt(
const std::shared_ptr<Boolean>& gt);
22693 void set_unit2(std::shared_ptr<Unit>&& unit2);
22698 void set_unit2(
const std::shared_ptr<Unit>& unit2);
22760 void set_parent_in_children();
22768 #endif // !NMODL_AST_FACTOR_DEF_HPP 22769 #ifndef NMODL_AST_VALENCE_HPP 22770 #define NMODL_AST_VALENCE_HPP 22802 explicit Valence(
const std::shared_ptr<Name>& type,
const std::shared_ptr<Double>& value);
22806 virtual ~
Valence() =
default;
22874 return std::static_pointer_cast<
Valence>(shared_from_this());
22881 return std::static_pointer_cast<
const Valence>(shared_from_this());
22894 return token.get();
22943 void set_type(std::shared_ptr<Name>&& type);
22948 void set_type(
const std::shared_ptr<Name>& type);
22954 void set_value(std::shared_ptr<Double>&& value);
22959 void set_value(
const std::shared_ptr<Double>& value);
23021 void set_parent_in_children();
23029 #endif // !NMODL_AST_VALENCE_HPP 23030 #ifndef NMODL_AST_UNIT_STATE_HPP 23031 #define NMODL_AST_UNIT_STATE_HPP 23124 return "UnitState";
23132 return std::static_pointer_cast<
UnitState>(shared_from_this());
23139 return std::static_pointer_cast<
const UnitState>(shared_from_this());
23152 return token.get();
23261 void set_parent_in_children();
23269 #endif // !NMODL_AST_UNIT_STATE_HPP 23270 #ifndef NMODL_AST_LOCAL_LIST_STATEMENT_HPP 23271 #define NMODL_AST_LOCAL_LIST_STATEMENT_HPP 23272 #define NMODL_AST_LOCAL_LIST_STATEMENT_HPP_INLINE_DEFINITION_REQUIRED 23365 return "LocalListStatement";
23407 return token.get();
23416 void emplace_back_local_var(
LocalVar *n);
23421 void emplace_back_local_var(std::shared_ptr<LocalVar> n);
23426 LocalVarVector::const_iterator erase_local_var(LocalVarVector::const_iterator first);
23431 LocalVarVector::const_iterator erase_local_var(LocalVarVector::const_iterator first, LocalVarVector::const_iterator last);
23438 size_t erase_local_var(std::unordered_set<LocalVar*>& to_be_erased);
23443 LocalVarVector::const_iterator insert_local_var(LocalVarVector::const_iterator position,
const std::shared_ptr<LocalVar>& n);
23448 template <
class NodeType,
class InputIterator>
23449 void insert_local_var(LocalVarVector::const_iterator position, NodeType& to, InputIterator first, InputIterator last);
23454 void reset_local_var(LocalVarVector::const_iterator position,
LocalVar* n);
23459 void reset_local_var(LocalVarVector::const_iterator position, std::shared_ptr<LocalVar> n);
23558 void set_parent_in_children();
23566 #endif // !NMODL_AST_LOCAL_LIST_STATEMENT_HPP 23567 #ifndef NMODL_AST_MODEL_HPP 23568 #define NMODL_AST_MODEL_HPP 23598 explicit Model(
const std::shared_ptr<String>& title);
23602 virtual ~
Model() =
default;
23630 return new Model(*
this);
23684 return std::static_pointer_cast<
Model>(shared_from_this());
23691 return std::static_pointer_cast<
const Model>(shared_from_this());
23704 return token.get();
23740 void set_title(std::shared_ptr<String>&& title);
23745 void set_title(
const std::shared_ptr<String>& title);
23807 void set_parent_in_children();
23815 #endif // !NMODL_AST_MODEL_HPP 23816 #ifndef NMODL_AST_DEFINE_HPP 23817 #define NMODL_AST_DEFINE_HPP 23849 explicit Define(
const std::shared_ptr<Name>& name,
const std::shared_ptr<Integer>& value);
23853 virtual ~
Define() =
default;
23881 return new Define(*
this);
23935 return std::static_pointer_cast<
Define>(shared_from_this());
23942 return std::static_pointer_cast<
const Define>(shared_from_this());
23955 return token.get();
24016 void set_name(std::shared_ptr<Name>&& name);
24021 void set_name(
const std::shared_ptr<Name>& name);
24027 void set_value(std::shared_ptr<Integer>&& value);
24032 void set_value(
const std::shared_ptr<Integer>& value);
24094 void set_parent_in_children();
24102 #endif // !NMODL_AST_DEFINE_HPP 24103 #ifndef NMODL_AST_INCLUDE_HPP 24104 #define NMODL_AST_INCLUDE_HPP 24136 explicit Include(
const std::shared_ptr<String>& filename,
const NodeVector& blocks);
24140 virtual ~
Include() =
default;
24222 return std::static_pointer_cast<
Include>(shared_from_this());
24229 return std::static_pointer_cast<
const Include>(shared_from_this());
24242 return token.get();
24291 void set_filename(std::shared_ptr<String>&& filename);
24296 void set_filename(
const std::shared_ptr<String>& filename);
24369 void set_parent_in_children();
24377 #endif // !NMODL_AST_INCLUDE_HPP 24378 #ifndef NMODL_AST_PARAM_ASSIGN_HPP 24379 #define NMODL_AST_PARAM_ASSIGN_HPP 24415 explicit ParamAssign(
const std::shared_ptr<Identifier>& name,
const std::shared_ptr<Number>& value,
const std::shared_ptr<Unit>& unit,
const std::shared_ptr<Limits>& limit);
24479 return "ParamAssign";
24487 return std::static_pointer_cast<
ParamAssign>(shared_from_this());
24494 return std::static_pointer_cast<
const ParamAssign>(shared_from_this());
24507 return token.get();
24532 const std::shared_ptr<Identifier>&
get_name() const noexcept {
24594 void set_name(std::shared_ptr<Identifier>&& name);
24599 void set_name(
const std::shared_ptr<Identifier>& name);
24605 void set_value(std::shared_ptr<Number>&& value);
24610 void set_value(
const std::shared_ptr<Number>& value);
24616 void set_unit(std::shared_ptr<Unit>&& unit);
24621 void set_unit(
const std::shared_ptr<Unit>& unit);
24627 void set_limit(std::shared_ptr<Limits>&& limit);
24632 void set_limit(
const std::shared_ptr<Limits>& limit);
24694 void set_parent_in_children();
24702 #endif // !NMODL_AST_PARAM_ASSIGN_HPP 24703 #ifndef NMODL_AST_STEPPED_HPP 24704 #define NMODL_AST_STEPPED_HPP 24738 explicit Stepped(
const std::shared_ptr<Name>& name,
const NumberVector& values,
const std::shared_ptr<Unit>& unit);
24742 virtual ~
Stepped() =
default;
24810 return std::static_pointer_cast<
Stepped>(shared_from_this());
24817 return std::static_pointer_cast<
const Stepped>(shared_from_this());
24830 return token.get();
24892 void set_name(std::shared_ptr<Name>&& name);
24897 void set_name(
const std::shared_ptr<Name>& name);
24914 void set_unit(std::shared_ptr<Unit>&& unit);
24919 void set_unit(
const std::shared_ptr<Unit>& unit);
24981 void set_parent_in_children();
24989 #endif // !NMODL_AST_STEPPED_HPP 24990 #ifndef NMODL_AST_INDEPENDENT_DEFINITION_HPP 24991 #define NMODL_AST_INDEPENDENT_DEFINITION_HPP 25033 explicit IndependentDefinition(
const std::shared_ptr<Boolean>& sweep,
const std::shared_ptr<Name>& name,
const std::shared_ptr<Number>& from,
const std::shared_ptr<Number>& to,
const std::shared_ptr<Integer>& with,
const std::shared_ptr<Number>& start,
const std::shared_ptr<Unit>& unit);
25097 return "IndependentDefinition";
25125 return token.get();
25177 const std::shared_ptr<Number>&
get_to() const noexcept {
25190 const std::shared_ptr<Integer>&
get_with() const noexcept {
25239 void set_sweep(std::shared_ptr<Boolean>&& sweep);
25244 void set_sweep(
const std::shared_ptr<Boolean>& sweep);
25250 void set_name(std::shared_ptr<Name>&& name);
25255 void set_name(
const std::shared_ptr<Name>& name);
25261 void set_from(std::shared_ptr<Number>&& from);
25266 void set_from(
const std::shared_ptr<Number>& from);
25272 void set_to(std::shared_ptr<Number>&& to);
25277 void set_to(
const std::shared_ptr<Number>& to);
25283 void set_with(std::shared_ptr<Integer>&& with);
25288 void set_with(
const std::shared_ptr<Integer>& with);
25294 void set_start(std::shared_ptr<Number>&& start);
25299 void set_start(
const std::shared_ptr<Number>& start);
25305 void set_unit(std::shared_ptr<Unit>&& unit);
25310 void set_unit(
const std::shared_ptr<Unit>& unit);
25372 void set_parent_in_children();
25380 #endif // !NMODL_AST_INDEPENDENT_DEFINITION_HPP 25381 #ifndef NMODL_AST_ASSIGNED_DEFINITION_HPP 25382 #define NMODL_AST_ASSIGNED_DEFINITION_HPP 25424 explicit AssignedDefinition(
const std::shared_ptr<Identifier>& name,
const std::shared_ptr<Integer>& length,
const std::shared_ptr<Number>& from,
const std::shared_ptr<Number>& to,
const std::shared_ptr<Number>& start,
const std::shared_ptr<Unit>& unit,
const std::shared_ptr<Double>& abstol);
25488 return "AssignedDefinition";
25516 return token.get();
25541 const std::shared_ptr<Identifier>&
get_name() const noexcept {
25580 const std::shared_ptr<Number>&
get_to() const noexcept {
25642 void set_name(std::shared_ptr<Identifier>&& name);
25647 void set_name(
const std::shared_ptr<Identifier>& name);
25653 void set_length(std::shared_ptr<Integer>&& length);
25658 void set_length(
const std::shared_ptr<Integer>& length);
25664 void set_from(std::shared_ptr<Number>&& from);
25669 void set_from(
const std::shared_ptr<Number>& from);
25675 void set_to(std::shared_ptr<Number>&& to);
25680 void set_to(
const std::shared_ptr<Number>& to);
25686 void set_start(std::shared_ptr<Number>&& start);
25691 void set_start(
const std::shared_ptr<Number>& start);
25697 void set_unit(std::shared_ptr<Unit>&& unit);
25702 void set_unit(
const std::shared_ptr<Unit>& unit);
25708 void set_abstol(std::shared_ptr<Double>&& abstol);
25713 void set_abstol(
const std::shared_ptr<Double>& abstol);
25775 void set_parent_in_children();
25783 #endif // !NMODL_AST_ASSIGNED_DEFINITION_HPP 25784 #ifndef NMODL_AST_PLOT_DECLARATION_HPP 25785 #define NMODL_AST_PLOT_DECLARATION_HPP 25881 return "PlotDeclaration";
25903 return std::static_pointer_cast<
PlotDeclaration>(shared_from_this());
25910 return std::static_pointer_cast<
const PlotDeclaration>(shared_from_this());
25923 return token.get();
25949 const std::shared_ptr<PlotVar>&
get_name() const noexcept {
25983 void set_name(std::shared_ptr<PlotVar>&& name);
25988 void set_name(
const std::shared_ptr<PlotVar>& name);
26050 void set_parent_in_children();
26058 #endif // !NMODL_AST_PLOT_DECLARATION_HPP 26059 #ifndef NMODL_AST_CONDUCTANCE_HINT_HPP 26060 #define NMODL_AST_CONDUCTANCE_HINT_HPP 26100 explicit ConductanceHint(
const std::shared_ptr<Name>& conductance,
const std::shared_ptr<Name>& ion);
26164 return "ConductanceHint";
26179 return "CONDUCTANCE ";
26186 return std::static_pointer_cast<
ConductanceHint>(shared_from_this());
26193 return std::static_pointer_cast<
const ConductanceHint>(shared_from_this());
26206 return token.get();
26220 return conductance;
26232 const std::shared_ptr<Name>&
get_ion() const noexcept {
26255 void set_conductance(std::shared_ptr<Name>&& conductance);
26260 void set_conductance(
const std::shared_ptr<Name>& conductance);
26266 void set_ion(std::shared_ptr<Name>&& ion);
26271 void set_ion(
const std::shared_ptr<Name>& ion);
26333 void set_parent_in_children();
26341 #endif // !NMODL_AST_CONDUCTANCE_HINT_HPP 26342 #ifndef NMODL_AST_EXPRESSION_STATEMENT_HPP 26343 #define NMODL_AST_EXPRESSION_STATEMENT_HPP 26437 return "ExpressionStatement";
26465 return token.get();
26501 void set_expression(std::shared_ptr<Expression>&& expression);
26506 void set_expression(
const std::shared_ptr<Expression>& expression);
26568 void set_parent_in_children();
26576 #endif // !NMODL_AST_EXPRESSION_STATEMENT_HPP 26577 #ifndef NMODL_AST_PROTECT_STATEMENT_HPP 26578 #define NMODL_AST_PROTECT_STATEMENT_HPP 26672 return "ProtectStatement";
26701 return std::static_pointer_cast<
const ProtectStatement>(shared_from_this());
26714 return token.get();
26750 void set_expression(std::shared_ptr<Expression>&& expression);
26755 void set_expression(
const std::shared_ptr<Expression>& expression);
26817 void set_parent_in_children();
26825 #endif // !NMODL_AST_PROTECT_STATEMENT_HPP 26826 #ifndef NMODL_AST_FROM_STATEMENT_HPP 26827 #define NMODL_AST_FROM_STATEMENT_HPP 26851 std::shared_ptr<Expression>
to;
26865 explicit FromStatement(
const std::shared_ptr<Name>& name,
const std::shared_ptr<Expression>& from,
const std::shared_ptr<Expression>& to,
const std::shared_ptr<Expression>& increment,
const std::shared_ptr<StatementBlock>& statement_block);
26929 return "FromStatement";
26951 return std::static_pointer_cast<
FromStatement>(shared_from_this());
26958 return std::static_pointer_cast<
const FromStatement>(shared_from_this());
26971 return token.get();
27009 const std::shared_ptr<Expression>&
get_from() const noexcept {
27022 const std::shared_ptr<Expression>&
get_to() const noexcept {
27049 return statement_block;
27071 void set_name(std::shared_ptr<Name>&& name);
27076 void set_name(
const std::shared_ptr<Name>& name);
27082 void set_from(std::shared_ptr<Expression>&& from);
27087 void set_from(
const std::shared_ptr<Expression>& from);
27093 void set_to(std::shared_ptr<Expression>&& to);
27098 void set_to(
const std::shared_ptr<Expression>& to);
27104 void set_increment(std::shared_ptr<Expression>&& increment);
27109 void set_increment(
const std::shared_ptr<Expression>& increment);
27115 void set_statement_block(std::shared_ptr<StatementBlock>&& statement_block);
27120 void set_statement_block(
const std::shared_ptr<StatementBlock>& statement_block);
27182 void set_parent_in_children();
27190 #endif // !NMODL_AST_FROM_STATEMENT_HPP 27191 #ifndef NMODL_AST_FOR_ALL_STATEMENT_HPP 27192 #define NMODL_AST_FOR_ALL_STATEMENT_HPP 27224 explicit ForAllStatement(
const std::shared_ptr<Name>& name,
const std::shared_ptr<StatementBlock>& statement_block);
27288 return "ForAllStatement";
27310 return std::static_pointer_cast<
ForAllStatement>(shared_from_this());
27317 return std::static_pointer_cast<
const ForAllStatement>(shared_from_this());
27330 return token.get();
27357 return statement_block;
27379 void set_name(std::shared_ptr<Name>&& name);
27384 void set_name(
const std::shared_ptr<Name>& name);
27390 void set_statement_block(std::shared_ptr<StatementBlock>&& statement_block);
27395 void set_statement_block(
const std::shared_ptr<StatementBlock>& statement_block);
27457 void set_parent_in_children();
27465 #endif // !NMODL_AST_FOR_ALL_STATEMENT_HPP 27466 #ifndef NMODL_AST_WHILE_STATEMENT_HPP 27467 #define NMODL_AST_WHILE_STATEMENT_HPP 27499 explicit WhileStatement(
const std::shared_ptr<Expression>& condition,
const std::shared_ptr<StatementBlock>& statement_block);
27563 return "WhileStatement";
27585 return std::static_pointer_cast<
WhileStatement>(shared_from_this());
27592 return std::static_pointer_cast<
const WhileStatement>(shared_from_this());
27605 return token.get();
27632 return statement_block;
27654 void set_condition(std::shared_ptr<Expression>&& condition);
27659 void set_condition(
const std::shared_ptr<Expression>& condition);
27665 void set_statement_block(std::shared_ptr<StatementBlock>&& statement_block);
27670 void set_statement_block(
const std::shared_ptr<StatementBlock>& statement_block);
27732 void set_parent_in_children();
27740 #endif // !NMODL_AST_WHILE_STATEMENT_HPP 27741 #ifndef NMODL_AST_IF_STATEMENT_HPP 27742 #define NMODL_AST_IF_STATEMENT_HPP 27778 explicit IfStatement(
const std::shared_ptr<Expression>& condition,
const std::shared_ptr<StatementBlock>& statement_block,
const ElseIfStatementVector& elseifs,
const std::shared_ptr<ElseStatement>& elses);
27842 return "IfStatement";
27864 return std::static_pointer_cast<
IfStatement>(shared_from_this());
27871 return std::static_pointer_cast<
const IfStatement>(shared_from_this());
27884 return token.get();
27911 return statement_block;
27936 const std::shared_ptr<ElseStatement>&
get_elses() const noexcept {
27959 void set_condition(std::shared_ptr<Expression>&& condition);
27964 void set_condition(
const std::shared_ptr<Expression>& condition);
27970 void set_statement_block(std::shared_ptr<StatementBlock>&& statement_block);
27975 void set_statement_block(
const std::shared_ptr<StatementBlock>& statement_block);
27992 void set_elses(std::shared_ptr<ElseStatement>&& elses);
27997 void set_elses(
const std::shared_ptr<ElseStatement>& elses);
28059 void set_parent_in_children();
28067 #endif // !NMODL_AST_IF_STATEMENT_HPP 28068 #ifndef NMODL_AST_ELSE_IF_STATEMENT_HPP 28069 #define NMODL_AST_ELSE_IF_STATEMENT_HPP 28101 explicit ElseIfStatement(
const std::shared_ptr<Expression>& condition,
const std::shared_ptr<StatementBlock>& statement_block);
28165 return "ElseIfStatement";
28180 return " ELSE IF ";
28187 return std::static_pointer_cast<
ElseIfStatement>(shared_from_this());
28194 return std::static_pointer_cast<
const ElseIfStatement>(shared_from_this());
28207 return token.get();
28234 return statement_block;
28256 void set_condition(std::shared_ptr<Expression>&& condition);
28261 void set_condition(
const std::shared_ptr<Expression>& condition);
28267 void set_statement_block(std::shared_ptr<StatementBlock>&& statement_block);
28272 void set_statement_block(
const std::shared_ptr<StatementBlock>& statement_block);
28334 void set_parent_in_children();
28342 #endif // !NMODL_AST_ELSE_IF_STATEMENT_HPP 28343 #ifndef NMODL_AST_ELSE_STATEMENT_HPP 28344 #define NMODL_AST_ELSE_STATEMENT_HPP 28374 explicit ElseStatement(
const std::shared_ptr<StatementBlock>& statement_block);
28438 return "ElseStatement";
28460 return std::static_pointer_cast<
ElseStatement>(shared_from_this());
28467 return std::static_pointer_cast<
const ElseStatement>(shared_from_this());
28480 return token.get();
28494 return statement_block;
28516 void set_statement_block(std::shared_ptr<StatementBlock>&& statement_block);
28521 void set_statement_block(
const std::shared_ptr<StatementBlock>& statement_block);
28583 void set_parent_in_children();
28591 #endif // !NMODL_AST_ELSE_STATEMENT_HPP 28592 #ifndef NMODL_AST_PARTIAL_EQUATION_HPP 28593 #define NMODL_AST_PARTIAL_EQUATION_HPP 28629 explicit PartialEquation(
const std::shared_ptr<PrimeName>& prime,
const std::shared_ptr<Name>& name1,
const std::shared_ptr<Name>& name2,
const std::shared_ptr<Name>& name3);
28693 return "PartialEquation";
28701 return std::static_pointer_cast<
PartialEquation>(shared_from_this());
28708 return std::static_pointer_cast<
const PartialEquation>(shared_from_this());
28721 return token.get();
28796 void set_prime(std::shared_ptr<PrimeName>&& prime);
28801 void set_prime(
const std::shared_ptr<PrimeName>& prime);
28807 void set_name1(std::shared_ptr<Name>&& name1);
28812 void set_name1(
const std::shared_ptr<Name>& name1);
28818 void set_name2(std::shared_ptr<Name>&& name2);
28823 void set_name2(
const std::shared_ptr<Name>& name2);
28829 void set_name3(std::shared_ptr<Name>&& name3);
28834 void set_name3(
const std::shared_ptr<Name>& name3);
28896 void set_parent_in_children();
28904 #endif // !NMODL_AST_PARTIAL_EQUATION_HPP 28905 #ifndef NMODL_AST_PARTIAL_BOUNDARY_HPP 28906 #define NMODL_AST_PARTIAL_BOUNDARY_HPP 28950 explicit PartialBoundary(
const std::shared_ptr<Name>& del,
const std::shared_ptr<Identifier>& name,
const std::shared_ptr<FirstLastTypeIndex>& index,
const std::shared_ptr<Expression>& expression,
const std::shared_ptr<Name>& name1,
const std::shared_ptr<Name>& del2,
const std::shared_ptr<Name>& name2,
const std::shared_ptr<Name>& name3);
29014 return "PartialBoundary";
29036 return std::static_pointer_cast<
PartialBoundary>(shared_from_this());
29043 return std::static_pointer_cast<
const PartialBoundary>(shared_from_this());
29056 return token.get();
29069 const std::shared_ptr<Name>&
get_del() const noexcept {
29082 const std::shared_ptr<Identifier>&
get_name() const noexcept {
29095 const std::shared_ptr<FirstLastTypeIndex>&
get_index() const noexcept {
29183 void set_del(std::shared_ptr<Name>&& del);
29188 void set_del(
const std::shared_ptr<Name>& del);
29194 void set_name(std::shared_ptr<Identifier>&& name);
29199 void set_name(
const std::shared_ptr<Identifier>& name);
29205 void set_index(std::shared_ptr<FirstLastTypeIndex>&& index);
29210 void set_index(
const std::shared_ptr<FirstLastTypeIndex>& index);
29216 void set_expression(std::shared_ptr<Expression>&& expression);
29221 void set_expression(
const std::shared_ptr<Expression>& expression);
29227 void set_name1(std::shared_ptr<Name>&& name1);
29232 void set_name1(
const std::shared_ptr<Name>& name1);
29238 void set_del2(std::shared_ptr<Name>&& del2);
29243 void set_del2(
const std::shared_ptr<Name>& del2);
29249 void set_name2(std::shared_ptr<Name>&& name2);
29254 void set_name2(
const std::shared_ptr<Name>& name2);
29260 void set_name3(std::shared_ptr<Name>&& name3);
29265 void set_name3(
const std::shared_ptr<Name>& name3);
29327 void set_parent_in_children();
29335 #endif // !NMODL_AST_PARTIAL_BOUNDARY_HPP 29336 #ifndef NMODL_AST_WATCH_STATEMENT_HPP 29337 #define NMODL_AST_WATCH_STATEMENT_HPP 29338 #define NMODL_AST_WATCH_STATEMENT_HPP_INLINE_DEFINITION_REQUIRED 29431 return "WatchStatement";
29453 return std::static_pointer_cast<
WatchStatement>(shared_from_this());
29460 return std::static_pointer_cast<
const WatchStatement>(shared_from_this());
29473 return token.get();
29482 void emplace_back_watch(
Watch *n);
29487 void emplace_back_watch(std::shared_ptr<Watch> n);
29492 WatchVector::const_iterator erase_watch(WatchVector::const_iterator first);
29497 WatchVector::const_iterator erase_watch(WatchVector::const_iterator first, WatchVector::const_iterator last);
29504 size_t erase_watch(std::unordered_set<Watch*>& to_be_erased);
29509 WatchVector::const_iterator insert_watch(WatchVector::const_iterator position,
const std::shared_ptr<Watch>& n);
29514 template <
class NodeType,
class InputIterator>
29515 void insert_watch(WatchVector::const_iterator position, NodeType& to, InputIterator first, InputIterator last);
29520 void reset_watch(WatchVector::const_iterator position,
Watch* n);
29525 void reset_watch(WatchVector::const_iterator position, std::shared_ptr<Watch> n);
29562 void set_statements(
const WatchVector& statements);
29624 void set_parent_in_children();
29632 #endif // !NMODL_AST_WATCH_STATEMENT_HPP 29633 #ifndef NMODL_AST_MUTEX_LOCK_HPP 29634 #define NMODL_AST_MUTEX_LOCK_HPP 29723 return "MutexLock";
29738 return "MUTEXLOCK";
29745 return std::static_pointer_cast<
MutexLock>(shared_from_this());
29752 return std::static_pointer_cast<
const MutexLock>(shared_from_this());
29765 return token.get();
29843 #endif // !NMODL_AST_MUTEX_LOCK_HPP 29844 #ifndef NMODL_AST_MUTEX_UNLOCK_HPP 29845 #define NMODL_AST_MUTEX_UNLOCK_HPP 29934 return "MutexUnlock";
29949 return "MUTEXUNLOCK";
29956 return std::static_pointer_cast<
MutexUnlock>(shared_from_this());
29963 return std::static_pointer_cast<
const MutexUnlock>(shared_from_this());
29976 return token.get();
30054 #endif // !NMODL_AST_MUTEX_UNLOCK_HPP 30055 #ifndef NMODL_AST_RESET_HPP 30056 #define NMODL_AST_RESET_HPP 30085 virtual ~
Reset() =
default;
30113 return new Reset(*
this);
30167 return std::static_pointer_cast<
Reset>(shared_from_this());
30174 return std::static_pointer_cast<
const Reset>(shared_from_this());
30187 return token.get();
30265 #endif // !NMODL_AST_RESET_HPP 30266 #ifndef NMODL_AST_SENS_HPP 30267 #define NMODL_AST_SENS_HPP 30300 virtual ~
Sens() =
default;
30328 return new Sens(*
this);
30382 return std::static_pointer_cast<
Sens>(shared_from_this());
30389 return std::static_pointer_cast<
const Sens>(shared_from_this());
30402 return token.get();
30505 void set_parent_in_children();
30513 #endif // !NMODL_AST_SENS_HPP 30514 #ifndef NMODL_AST_CONSERVE_HPP 30515 #define NMODL_AST_CONSERVE_HPP 30547 explicit Conserve(
const std::shared_ptr<Expression>& react,
const std::shared_ptr<Expression>& expr);
30633 return std::static_pointer_cast<
Conserve>(shared_from_this());
30640 return std::static_pointer_cast<
const Conserve>(shared_from_this());
30653 return token.get();
30679 const std::shared_ptr<Expression>&
get_expr() const noexcept {
30702 void set_react(std::shared_ptr<Expression>&& react);
30707 void set_react(
const std::shared_ptr<Expression>& react);
30713 void set_expr(std::shared_ptr<Expression>&& expr);
30718 void set_expr(
const std::shared_ptr<Expression>& expr);
30780 void set_parent_in_children();
30788 #endif // !NMODL_AST_CONSERVE_HPP 30789 #ifndef NMODL_AST_COMPARTMENT_HPP 30790 #define NMODL_AST_COMPARTMENT_HPP 30824 explicit Compartment(
const std::shared_ptr<Name>& name,
const std::shared_ptr<Expression>& expression,
const NameVector& names);
30888 return "Compartment";
30903 return "COMPARTMENT";
30910 return std::static_pointer_cast<
Compartment>(shared_from_this());
30917 return std::static_pointer_cast<
const Compartment>(shared_from_this());
30930 return token.get();
30992 void set_name(std::shared_ptr<Name>&& name);
30997 void set_name(
const std::shared_ptr<Name>& name);
31003 void set_expression(std::shared_ptr<Expression>&& expression);
31008 void set_expression(
const std::shared_ptr<Expression>& expression);
31081 void set_parent_in_children();
31089 #endif // !NMODL_AST_COMPARTMENT_HPP 31090 #ifndef NMODL_AST_LON_DIFUSE_HPP 31091 #define NMODL_AST_LON_DIFUSE_HPP 31125 explicit LonDifuse(
const std::shared_ptr<Name>& name,
const std::shared_ptr<Expression>& expression,
const NameVector& names);
31189 return "LonDifuse";
31204 return "LONGITUDINAL_DIFFUSION";
31211 return std::static_pointer_cast<
LonDifuse>(shared_from_this());
31218 return std::static_pointer_cast<
const LonDifuse>(shared_from_this());
31231 return token.get();
31293 void set_name(std::shared_ptr<Name>&& name);
31298 void set_name(
const std::shared_ptr<Name>& name);
31304 void set_expression(std::shared_ptr<Expression>&& expression);
31309 void set_expression(
const std::shared_ptr<Expression>& expression);
31382 void set_parent_in_children();
31390 #endif // !NMODL_AST_LON_DIFUSE_HPP 31391 #ifndef NMODL_AST_REACTION_STATEMENT_HPP 31392 #define NMODL_AST_REACTION_STATEMENT_HPP 31430 explicit ReactionStatement(
const std::shared_ptr<Expression>& reaction1,
const ReactionOperator& op,
const std::shared_ptr<Expression>& reaction2,
const std::shared_ptr<Expression>& expression1,
const std::shared_ptr<Expression>& expression2);
31494 return "ReactionStatement";
31536 return token.get();
31589 return expression1;
31602 return expression2;
31624 void set_reaction1(std::shared_ptr<Expression>&& reaction1);
31629 void set_reaction1(
const std::shared_ptr<Expression>& reaction1);
31646 void set_reaction2(std::shared_ptr<Expression>&& reaction2);
31651 void set_reaction2(
const std::shared_ptr<Expression>& reaction2);
31657 void set_expression1(std::shared_ptr<Expression>&& expression1);
31662 void set_expression1(
const std::shared_ptr<Expression>& expression1);
31668 void set_expression2(std::shared_ptr<Expression>&& expression2);
31673 void set_expression2(
const std::shared_ptr<Expression>& expression2);
31735 void set_parent_in_children();
31743 #endif // !NMODL_AST_REACTION_STATEMENT_HPP 31744 #ifndef NMODL_AST_LAG_STATEMENT_HPP 31745 #define NMODL_AST_LAG_STATEMENT_HPP 31786 explicit LagStatement(
const std::shared_ptr<Identifier>& name,
const std::shared_ptr<Name>& byname);
31850 return "LagStatement";
31872 return std::static_pointer_cast<
LagStatement>(shared_from_this());
31879 return std::static_pointer_cast<
const LagStatement>(shared_from_this());
31892 return token.get();
31905 const std::shared_ptr<Identifier>&
get_name() const noexcept {
31941 void set_name(std::shared_ptr<Identifier>&& name);
31946 void set_name(
const std::shared_ptr<Identifier>& name);
31952 void set_byname(std::shared_ptr<Name>&& byname);
31957 void set_byname(
const std::shared_ptr<Name>& byname);
32019 void set_parent_in_children();
32027 #endif // !NMODL_AST_LAG_STATEMENT_HPP 32028 #ifndef NMODL_AST_QUEUE_STATEMENT_HPP 32029 #define NMODL_AST_QUEUE_STATEMENT_HPP 32061 explicit QueueStatement(
const std::shared_ptr<QueueExpressionType>& qtype,
const std::shared_ptr<Identifier>& name);
32125 return "QueueStatement";
32133 return std::static_pointer_cast<
QueueStatement>(shared_from_this());
32140 return std::static_pointer_cast<
const QueueStatement>(shared_from_this());
32153 return token.get();
32166 const std::shared_ptr<QueueExpressionType>&
get_qtype() const noexcept {
32179 const std::shared_ptr<Identifier>&
get_name() const noexcept {
32202 void set_qtype(std::shared_ptr<QueueExpressionType>&& qtype);
32207 void set_qtype(
const std::shared_ptr<QueueExpressionType>& qtype);
32213 void set_name(std::shared_ptr<Identifier>&& name);
32218 void set_name(
const std::shared_ptr<Identifier>& name);
32280 void set_parent_in_children();
32288 #endif // !NMODL_AST_QUEUE_STATEMENT_HPP 32289 #ifndef NMODL_AST_CONSTANT_STATEMENT_HPP 32290 #define NMODL_AST_CONSTANT_STATEMENT_HPP 32386 return "ConstantStatement";
32414 return token.get();
32450 void set_constant(std::shared_ptr<ConstantVar>&& constant);
32455 void set_constant(
const std::shared_ptr<ConstantVar>& constant);
32517 void set_parent_in_children();
32525 #endif // !NMODL_AST_CONSTANT_STATEMENT_HPP 32526 #ifndef NMODL_AST_TABLE_STATEMENT_HPP 32527 #define NMODL_AST_TABLE_STATEMENT_HPP 32553 std::shared_ptr<Expression>
to;
32565 explicit TableStatement(
const NameVector& table_vars,
const NameVector& depend_vars,
const std::shared_ptr<Expression>& from,
const std::shared_ptr<Expression>& to,
const std::shared_ptr<Integer>& with);
32629 return "TableStatement";
32651 return std::static_pointer_cast<
TableStatement>(shared_from_this());
32658 return std::static_pointer_cast<
const TableStatement>(shared_from_this());
32671 return token.get();
32698 return depend_vars;
32710 const std::shared_ptr<Expression>&
get_from() const noexcept {
32723 const std::shared_ptr<Expression>&
get_to() const noexcept {
32736 const std::shared_ptr<Integer>&
get_with() const noexcept {
32759 void set_table_vars(
NameVector&& table_vars);
32764 void set_table_vars(
const NameVector& table_vars);
32770 void set_depend_vars(
NameVector&& depend_vars);
32775 void set_depend_vars(
const NameVector& depend_vars);
32781 void set_from(std::shared_ptr<Expression>&& from);
32786 void set_from(
const std::shared_ptr<Expression>& from);
32792 void set_to(std::shared_ptr<Expression>&& to);
32797 void set_to(
const std::shared_ptr<Expression>& to);
32803 void set_with(std::shared_ptr<Integer>&& with);
32808 void set_with(
const std::shared_ptr<Integer>& with);
32870 void set_parent_in_children();
32878 #endif // !NMODL_AST_TABLE_STATEMENT_HPP 32879 #ifndef NMODL_AST_SUFFIX_HPP 32880 #define NMODL_AST_SUFFIX_HPP 32912 explicit Suffix(
const std::shared_ptr<Name>& type,
const std::shared_ptr<Name>& name);
32916 virtual ~
Suffix() =
default;
32944 return new Suffix(*
this);
32984 return std::static_pointer_cast<
Suffix>(shared_from_this());
32991 return std::static_pointer_cast<
const Suffix>(shared_from_this());
33004 return token.get();
33065 void set_type(std::shared_ptr<Name>&& type);
33070 void set_type(
const std::shared_ptr<Name>& type);
33076 void set_name(std::shared_ptr<Name>&& name);
33081 void set_name(
const std::shared_ptr<Name>& name);
33143 void set_parent_in_children();
33151 #endif // !NMODL_AST_SUFFIX_HPP 33152 #ifndef NMODL_AST_USEION_HPP 33153 #define NMODL_AST_USEION_HPP 33191 explicit Useion(
const std::shared_ptr<Name>& name,
const ReadIonVarVector& readlist,
const WriteIonVarVector& writelist,
const std::shared_ptr<Valence>& valence,
const std::shared_ptr<String>& ontology_id);
33195 virtual ~
Useion() =
default;
33223 return new Useion(*
this);
33277 return std::static_pointer_cast<
Useion>(shared_from_this());
33284 return std::static_pointer_cast<
const Useion>(shared_from_this());
33297 return token.get();
33375 return ontology_id;
33397 void set_name(std::shared_ptr<Name>&& name);
33402 void set_name(
const std::shared_ptr<Name>& name);
33430 void set_valence(std::shared_ptr<Valence>&& valence);
33435 void set_valence(
const std::shared_ptr<Valence>& valence);
33441 void set_ontology_id(std::shared_ptr<String>&& ontology_id);
33446 void set_ontology_id(
const std::shared_ptr<String>& ontology_id);
33508 void set_parent_in_children();
33516 #endif // !NMODL_AST_USEION_HPP 33517 #ifndef NMODL_AST_NONSPECIFIC_HPP 33518 #define NMODL_AST_NONSPECIFIC_HPP 33611 return "Nonspecific";
33626 return "NONSPECIFIC_CURRENT ";
33633 return std::static_pointer_cast<
Nonspecific>(shared_from_this());
33640 return std::static_pointer_cast<
const Nonspecific>(shared_from_this());
33653 return token.get();
33756 void set_parent_in_children();
33764 #endif // !NMODL_AST_NONSPECIFIC_HPP 33765 #ifndef NMODL_AST_ELECTRODE_CURRENT_HPP 33766 #define NMODL_AST_ELECTRODE_CURRENT_HPP 33859 return "ElectrodeCurrent";
33874 return "ELECTRODE_CURRENT ";
33888 return std::static_pointer_cast<
const ElectrodeCurrent>(shared_from_this());
33901 return token.get();
34004 void set_parent_in_children();
34012 #endif // !NMODL_AST_ELECTRODE_CURRENT_HPP 34013 #ifndef NMODL_AST_SECTION_HPP 34014 #define NMODL_AST_SECTION_HPP 34047 virtual ~
Section() =
default;
34129 return std::static_pointer_cast<
Section>(shared_from_this());
34136 return std::static_pointer_cast<
const Section>(shared_from_this());
34149 return token.get();
34252 void set_parent_in_children();
34260 #endif // !NMODL_AST_SECTION_HPP 34261 #ifndef NMODL_AST_RANGE_HPP 34262 #define NMODL_AST_RANGE_HPP 34295 virtual ~
Range() =
default;
34323 return new Range(*
this);
34377 return std::static_pointer_cast<
Range>(shared_from_this());
34384 return std::static_pointer_cast<
const Range>(shared_from_this());
34397 return token.get();
34500 void set_parent_in_children();
34508 #endif // !NMODL_AST_RANGE_HPP 34509 #ifndef NMODL_AST_GLOBAL_HPP 34510 #define NMODL_AST_GLOBAL_HPP 34511 #define NMODL_AST_GLOBAL_HPP_INLINE_DEFINITION_REQUIRED 34544 virtual ~
Global() =
default;
34572 return new Global(*
this);
34626 return std::static_pointer_cast<
Global>(shared_from_this());
34633 return std::static_pointer_cast<
const Global>(shared_from_this());
34646 return token.get();
34655 void emplace_back_global_var(
GlobalVar *n);
34660 void emplace_back_global_var(std::shared_ptr<GlobalVar> n);
34665 GlobalVarVector::const_iterator erase_global_var(GlobalVarVector::const_iterator first);
34670 GlobalVarVector::const_iterator erase_global_var(GlobalVarVector::const_iterator first, GlobalVarVector::const_iterator last);
34677 size_t erase_global_var(std::unordered_set<GlobalVar*>& to_be_erased);
34682 GlobalVarVector::const_iterator insert_global_var(GlobalVarVector::const_iterator position,
const std::shared_ptr<GlobalVar>& n);
34687 template <
class NodeType,
class InputIterator>
34688 void insert_global_var(GlobalVarVector::const_iterator position, NodeType& to, InputIterator first, InputIterator last);
34693 void reset_global_var(GlobalVarVector::const_iterator position,
GlobalVar* n);
34698 void reset_global_var(GlobalVarVector::const_iterator position, std::shared_ptr<GlobalVar> n);
34797 void set_parent_in_children();
34805 #endif // !NMODL_AST_GLOBAL_HPP 34806 #ifndef NMODL_AST_POINTER_HPP 34807 #define NMODL_AST_POINTER_HPP 34840 virtual ~
Pointer() =
default;
34922 return std::static_pointer_cast<
Pointer>(shared_from_this());
34929 return std::static_pointer_cast<
const Pointer>(shared_from_this());
34942 return token.get();
35045 void set_parent_in_children();
35053 #endif // !NMODL_AST_POINTER_HPP 35054 #ifndef NMODL_AST_BBCORE_POINTER_HPP 35055 #define NMODL_AST_BBCORE_POINTER_HPP 35156 return "BbcorePointer";
35171 return "BBCOREPOINTER ";
35178 return std::static_pointer_cast<
BbcorePointer>(shared_from_this());
35185 return std::static_pointer_cast<
const BbcorePointer>(shared_from_this());
35198 return token.get();
35301 void set_parent_in_children();
35309 #endif // !NMODL_AST_BBCORE_POINTER_HPP 35310 #ifndef NMODL_AST_EXTERNAL_HPP 35311 #define NMODL_AST_EXTERNAL_HPP 35419 return "EXTERNAL ";
35426 return std::static_pointer_cast<
External>(shared_from_this());
35433 return std::static_pointer_cast<
const External>(shared_from_this());
35446 return token.get();
35549 void set_parent_in_children();
35557 #endif // !NMODL_AST_EXTERNAL_HPP 35558 #ifndef NMODL_AST_THREAD_SAFE_HPP 35559 #define NMODL_AST_THREAD_SAFE_HPP 35652 return "ThreadSafe";
35667 return "THREADSAFE";
35674 return std::static_pointer_cast<
ThreadSafe>(shared_from_this());
35681 return std::static_pointer_cast<
const ThreadSafe>(shared_from_this());
35694 return token.get();
35797 void set_parent_in_children();
35805 #endif // !NMODL_AST_THREAD_SAFE_HPP 35806 #ifndef NMODL_AST_VERBATIM_HPP 35807 #define NMODL_AST_VERBATIM_HPP 35837 explicit Verbatim(
const std::shared_ptr<String>& statement);
35923 return std::static_pointer_cast<
Verbatim>(shared_from_this());
35930 return std::static_pointer_cast<
const Verbatim>(shared_from_this());
35943 return token.get();
35979 void set_statement(std::shared_ptr<String>&& statement);
35984 void set_statement(
const std::shared_ptr<String>& statement);
36046 void set_parent_in_children();
36054 #endif // !NMODL_AST_VERBATIM_HPP 36055 #ifndef NMODL_AST_LINE_COMMENT_HPP 36056 #define NMODL_AST_LINE_COMMENT_HPP 36086 explicit LineComment(
const std::shared_ptr<String>& statement);
36150 return "LineComment";
36158 return std::static_pointer_cast<
LineComment>(shared_from_this());
36165 return std::static_pointer_cast<
const LineComment>(shared_from_this());
36178 return token.get();
36214 void set_statement(std::shared_ptr<String>&& statement);
36219 void set_statement(
const std::shared_ptr<String>& statement);
36281 void set_parent_in_children();
36289 #endif // !NMODL_AST_LINE_COMMENT_HPP 36290 #ifndef NMODL_AST_BLOCK_COMMENT_HPP 36291 #define NMODL_AST_BLOCK_COMMENT_HPP 36321 explicit BlockComment(
const std::shared_ptr<String>& statement);
36385 return "BlockComment";
36407 return std::static_pointer_cast<
BlockComment>(shared_from_this());
36414 return std::static_pointer_cast<
const BlockComment>(shared_from_this());
36427 return token.get();
36463 void set_statement(std::shared_ptr<String>&& statement);
36468 void set_statement(
const std::shared_ptr<String>& statement);
36530 void set_parent_in_children();
36538 #endif // !NMODL_AST_BLOCK_COMMENT_HPP 36539 #ifndef NMODL_AST_ONTOLOGY_STATEMENT_HPP 36540 #define NMODL_AST_ONTOLOGY_STATEMENT_HPP 36634 return "OntologyStatement";
36649 return "REPRESENTS ";
36676 return token.get();
36690 return ontology_id;
36712 void set_ontology_id(std::shared_ptr<String>&& ontology_id);
36717 void set_ontology_id(
const std::shared_ptr<String>& ontology_id);
36779 void set_parent_in_children();
36787 #endif // !NMODL_AST_ONTOLOGY_STATEMENT_HPP 36788 #ifndef NMODL_AST_PROGRAM_HPP 36789 #define NMODL_AST_PROGRAM_HPP 36790 #define NMODL_AST_PROGRAM_HPP_INLINE_DEFINITION_REQUIRED 36828 virtual ~
Program() =
default;
36896 return std::static_pointer_cast<
Program>(shared_from_this());
36903 return std::static_pointer_cast<
const Program>(shared_from_this());
36916 return token.get();
36939 return &model_symtab;
36946 void emplace_back_node(
Node *n);
36951 void emplace_back_node(std::shared_ptr<Node> n);
36956 NodeVector::const_iterator erase_node(NodeVector::const_iterator first);
36961 NodeVector::const_iterator erase_node(NodeVector::const_iterator first, NodeVector::const_iterator last);
36968 size_t erase_node(std::unordered_set<Node*>& to_be_erased);
36973 NodeVector::const_iterator insert_node(NodeVector::const_iterator position,
const std::shared_ptr<Node>& n);
36978 template <
class NodeType,
class InputIterator>
36979 void insert_node(NodeVector::const_iterator position, NodeType& to, InputIterator first, InputIterator last);
36984 void reset_node(NodeVector::const_iterator position,
Node* n);
36989 void reset_node(NodeVector::const_iterator position, std::shared_ptr<Node> n);
37025 symtab = newsymtab;
37100 void set_parent_in_children();
37108 #endif // !NMODL_AST_PROGRAM_HPP 37109 #ifndef NMODL_AST_NRN_STATE_BLOCK_HPP 37110 #define NMODL_AST_NRN_STATE_BLOCK_HPP 37205 return "NrnStateBlock";
37220 return "NRN_STATE ";
37227 return std::static_pointer_cast<
NrnStateBlock>(shared_from_this());
37234 return std::static_pointer_cast<
const NrnStateBlock>(shared_from_this());
37247 return token.get();
37276 return solve_statements;
37302 symtab = newsymtab;
37377 void set_parent_in_children();
37385 #endif // !NMODL_AST_NRN_STATE_BLOCK_HPP 37386 #ifndef NMODL_AST_EIGEN_NEWTON_SOLVER_BLOCK_HPP 37387 #define NMODL_AST_EIGEN_NEWTON_SOLVER_BLOCK_HPP 37431 explicit EigenNewtonSolverBlock(
const std::shared_ptr<Integer>& n_state_vars,
const std::shared_ptr<StatementBlock>& variable_block,
const std::shared_ptr<StatementBlock>& initialize_block,
const std::shared_ptr<StatementBlock>& setup_x_block,
const std::shared_ptr<StatementBlock>& functor_block,
const std::shared_ptr<StatementBlock>& update_states_block,
const std::shared_ptr<StatementBlock>& finalize_block);
37495 return "EigenNewtonSolverBlock";
37510 return "EIGEN_NEWTON_SOLVE";
37537 return token.get();
37566 return n_state_vars;
37579 return variable_block;
37592 return initialize_block;
37605 return setup_x_block;
37618 return functor_block;
37631 return update_states_block;
37644 return finalize_block;
37670 symtab = newsymtab;
37678 void set_n_state_vars(std::shared_ptr<Integer>&& n_state_vars);
37683 void set_n_state_vars(
const std::shared_ptr<Integer>& n_state_vars);
37689 void set_variable_block(std::shared_ptr<StatementBlock>&& variable_block);
37694 void set_variable_block(
const std::shared_ptr<StatementBlock>& variable_block);
37700 void set_initialize_block(std::shared_ptr<StatementBlock>&& initialize_block);
37705 void set_initialize_block(
const std::shared_ptr<StatementBlock>& initialize_block);
37711 void set_setup_x_block(std::shared_ptr<StatementBlock>&& setup_x_block);
37716 void set_setup_x_block(
const std::shared_ptr<StatementBlock>& setup_x_block);
37722 void set_functor_block(std::shared_ptr<StatementBlock>&& functor_block);
37727 void set_functor_block(
const std::shared_ptr<StatementBlock>& functor_block);
37733 void set_update_states_block(std::shared_ptr<StatementBlock>&& update_states_block);
37738 void set_update_states_block(
const std::shared_ptr<StatementBlock>& update_states_block);
37744 void set_finalize_block(std::shared_ptr<StatementBlock>&& finalize_block);
37749 void set_finalize_block(
const std::shared_ptr<StatementBlock>& finalize_block);
37811 void set_parent_in_children();
37819 #endif // !NMODL_AST_EIGEN_NEWTON_SOLVER_BLOCK_HPP 37820 #ifndef NMODL_AST_EIGEN_LINEAR_SOLVER_BLOCK_HPP 37821 #define NMODL_AST_EIGEN_LINEAR_SOLVER_BLOCK_HPP 37863 explicit EigenLinearSolverBlock(
const std::shared_ptr<Integer>& n_state_vars,
const std::shared_ptr<StatementBlock>& variable_block,
const std::shared_ptr<StatementBlock>& initialize_block,
const std::shared_ptr<StatementBlock>& setup_x_block,
const std::shared_ptr<StatementBlock>& update_states_block,
const std::shared_ptr<StatementBlock>& finalize_block);
37927 return "EigenLinearSolverBlock";
37942 return "EIGEN_LINEAR_SOLVE";
37969 return token.get();
37998 return n_state_vars;
38011 return variable_block;
38024 return initialize_block;
38037 return setup_x_block;
38050 return update_states_block;
38063 return finalize_block;
38089 symtab = newsymtab;
38097 void set_n_state_vars(std::shared_ptr<Integer>&& n_state_vars);
38102 void set_n_state_vars(
const std::shared_ptr<Integer>& n_state_vars);
38108 void set_variable_block(std::shared_ptr<StatementBlock>&& variable_block);
38113 void set_variable_block(
const std::shared_ptr<StatementBlock>& variable_block);
38119 void set_initialize_block(std::shared_ptr<StatementBlock>&& initialize_block);
38124 void set_initialize_block(
const std::shared_ptr<StatementBlock>& initialize_block);
38130 void set_setup_x_block(std::shared_ptr<StatementBlock>&& setup_x_block);
38135 void set_setup_x_block(
const std::shared_ptr<StatementBlock>& setup_x_block);
38141 void set_update_states_block(std::shared_ptr<StatementBlock>&& update_states_block);
38146 void set_update_states_block(
const std::shared_ptr<StatementBlock>& update_states_block);
38152 void set_finalize_block(std::shared_ptr<StatementBlock>&& finalize_block);
38157 void set_finalize_block(
const std::shared_ptr<StatementBlock>& finalize_block);
38219 void set_parent_in_children();
38227 #endif // !NMODL_AST_EIGEN_LINEAR_SOLVER_BLOCK_HPP 38228 #ifndef NMODL_AST_WRAPPED_EXPRESSION_HPP 38229 #define NMODL_AST_WRAPPED_EXPRESSION_HPP 38323 return "WrappedExpression";
38351 return token.get();
38387 void set_expression(std::shared_ptr<Expression>&& expression);
38392 void set_expression(
const std::shared_ptr<Expression>& expression);
38454 void set_parent_in_children();
38462 #endif // !NMODL_AST_WRAPPED_EXPRESSION_HPP 38463 #ifndef NMODL_AST_DERIVIMPLICIT_CALLBACK_HPP 38464 #define NMODL_AST_DERIVIMPLICIT_CALLBACK_HPP 38558 return "DerivimplicitCallback";
38586 return token.get();
38600 return node_to_solve;
38622 void set_node_to_solve(std::shared_ptr<Block>&& node_to_solve);
38627 void set_node_to_solve(
const std::shared_ptr<Block>& node_to_solve);
38689 void set_parent_in_children();
38697 #endif // !NMODL_AST_DERIVIMPLICIT_CALLBACK_HPP 38698 #ifndef NMODL_AST_SOLUTION_EXPRESSION_HPP 38699 #define NMODL_AST_SOLUTION_EXPRESSION_HPP 38731 explicit SolutionExpression(
const std::shared_ptr<SolveBlock>& solve_block,
const std::shared_ptr<Expression>& node_to_solve);
38795 return "SolutionExpression";
38823 return token.get();
38837 return solve_block;
38850 return node_to_solve;
38872 void set_solve_block(std::shared_ptr<SolveBlock>&& solve_block);
38877 void set_solve_block(
const std::shared_ptr<SolveBlock>& solve_block);
38883 void set_node_to_solve(std::shared_ptr<Expression>&& node_to_solve);
38888 void set_node_to_solve(
const std::shared_ptr<Expression>& node_to_solve);
38950 void set_parent_in_children();
38958 #endif // !NMODL_AST_SOLUTION_EXPRESSION_HPP 38959 #ifndef NMODL_AST_UPDATE_DT_HPP 38960 #define NMODL_AST_UPDATE_DT_HPP 38990 explicit UpdateDt(
const std::shared_ptr<Double>& value);
39076 return std::static_pointer_cast<
UpdateDt>(shared_from_this());
39083 return std::static_pointer_cast<
const UpdateDt>(shared_from_this());
39096 return token.get();
39132 void set_value(std::shared_ptr<Double>&& value);
39137 void set_value(
const std::shared_ptr<Double>& value);
39199 void set_parent_in_children();
39207 #endif // !NMODL_AST_UPDATE_DT_HPP 39211 #ifdef NMODL_AST_ASSIGNED_BLOCK_HPP_INLINE_DEFINITION_REQUIRED 39216 template <
class NodeType,
class InputIterator>
39219 for (
auto it = first; it != last; ++it) {
39222 n->set_parent(
this);
39224 definitions.insert(position, first, last);
39227 #endif // !NMODL_AST_ASSIGNED_BLOCK_HPP_INLINE_DEFINITION_REQUIRED 39229 #ifdef NMODL_AST_STATEMENT_BLOCK_HPP_INLINE_DEFINITION_REQUIRED 39234 template <
class NodeType,
class InputIterator>
39237 for (
auto it = first; it != last; ++it) {
39240 n->set_parent(
this);
39242 statements.insert(position, first, last);
39245 #endif // !NMODL_AST_STATEMENT_BLOCK_HPP_INLINE_DEFINITION_REQUIRED 39247 #ifdef NMODL_AST_LOCAL_LIST_STATEMENT_HPP_INLINE_DEFINITION_REQUIRED 39252 template <
class NodeType,
class InputIterator>
39255 for (
auto it = first; it != last; ++it) {
39258 n->set_parent(
this);
39260 variables.insert(position, first, last);
39263 #endif // !NMODL_AST_LOCAL_LIST_STATEMENT_HPP_INLINE_DEFINITION_REQUIRED 39265 #ifdef NMODL_AST_WATCH_STATEMENT_HPP_INLINE_DEFINITION_REQUIRED 39270 template <
class NodeType,
class InputIterator>
39273 for (
auto it = first; it != last; ++it) {
39276 n->set_parent(
this);
39278 statements.insert(position, first, last);
39281 #endif // !NMODL_AST_WATCH_STATEMENT_HPP_INLINE_DEFINITION_REQUIRED 39283 #ifdef NMODL_AST_GLOBAL_HPP_INLINE_DEFINITION_REQUIRED 39288 template <
class NodeType,
class InputIterator>
39291 for (
auto it = first; it != last; ++it) {
39294 n->set_parent(
this);
39296 variables.insert(position, first, last);
39299 #endif // !NMODL_AST_GLOBAL_HPP_INLINE_DEFINITION_REQUIRED 39301 #ifdef NMODL_AST_PROGRAM_HPP_INLINE_DEFINITION_REQUIRED 39306 template <
class NodeType,
class InputIterator>
39307 void Program::insert_node(NodeVector::const_iterator position, NodeType& to, InputIterator first, InputIterator last) {
39309 for (
auto it = first; it != last; ++it) {
39312 n->set_parent(
this);
39314 blocks.insert(position, first, last);
39317 #endif // !NMODL_AST_PROGRAM_HPP_INLINE_DEFINITION_REQUIRED std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
type of ast::DiscreteBlock
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::vector< std::shared_ptr< ExternVar > > ExternVarVector
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< StatementBlock > ifsolerr
Block to be executed on error.
static const std::string ReactionOpNames[]
string representation of ast::ReactionOp
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Name > steadystate
Name of the integration method.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Expression > length
legth of an array or index position
const std::shared_ptr< Integer > & get_with() const noexcept
Getter for member variable TableStatement::with.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
ThreadsafeVar * clone() const override
Return a copy of the current node.
virtual AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< StatementBlock > statement_block
TODO.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::ConductanceHint
bool is_lag_statement() const noexcept override
Check if the ast node is an instance of ast::LagStatement.
bool is_constant_statement() const noexcept override
Check if the ast node is an instance of ast::ConstantStatement.
const NameVector & get_solvefor() const noexcept
Getter for member variable LinearBlock::solvefor.
GlobalVarVector::const_iterator insert_global_var(GlobalVarVector::const_iterator position, const std::shared_ptr< GlobalVar > &n)
Insert member to variables.
LocalListStatement * clone() const override
Return a copy of the current node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Represents SECTION variables statement in NMODL.
type of ast::WrappedExpression
type of ast::NrnStateBlock
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Expression > & get_value() const noexcept
Getter for member variable Watch::value.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Name > name
Name of the discrete block.
static const std::string BATypeNames[]
string representation of ast::BAType
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< StatementBlock > & get_setup_x_block() const noexcept
Getter for member variable EigenLinearSolverBlock::setup_x_block.
bool is_unary_operator() const noexcept override
Check if the ast node is an instance of ast::UnaryOperator.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Unit > unit
TODO.
std::shared_ptr< ModToken > token
token with location information
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Identifier > & get_name() const noexcept
Getter for member variable Match::name.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const std::shared_ptr< Name > & get_name2() const noexcept
Getter for member variable PartialBoundary::name2.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
bool is_non_linear_block() const noexcept override
Check if the ast node is an instance of ast::NonLinearBlock.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
bool is_reaction_operator() const noexcept override
Check if the ast node is an instance of ast::ReactionOperator.
const SteppedVector & get_statements() const noexcept
Getter for member variable StepBlock::statements.
AssignedDefinitionVector::const_iterator insert_assigned_definition(AssignedDefinitionVector::const_iterator position, const std::shared_ptr< AssignedDefinition > &n)
Insert member to definitions.
const std::shared_ptr< StatementBlock > & get_finalize_block() const noexcept
Getter for member variable EigenLinearSolverBlock::finalize_block.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
Double * clone() const override
Return a copy of the current node.
virtual Block * clone() const override
Return a copy of the current node.
virtual AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< ModToken > token
token with location information
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::FunctionCall
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable DiscreteBlock::name.
type of ast::EigenLinearSolverBlock
AstNodeType
Enum type for every AST node type.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
UnaryOp
enum type for unary operators
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
virtual void accept(visitor::Visitor &v) override
accept (or visit) the current AST node using provided visitor
std::shared_ptr< SolveBlock > solve_block
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Limits * clone() const override
Return a copy of the current node.
ExpressionStatement * clone() const override
Return a copy of the current node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Name > name
Name of the non-linear block.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
bool is_param_assign() const noexcept override
Check if the ast node is an instance of ast::ParamAssign.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
Compartment * clone() const override
Return a copy of the current node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Name > name
Name of the linear block.
const NonspecificCurVarVector & get_currents() const noexcept
Getter for member variable Nonspecific::currents.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Unit > unit
Unit if specified.
Represent token returned by scanner.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
Range * clone() const override
Return a copy of the current node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_neuron_block() const noexcept override
Check if the ast node is an instance of ast::NeuronBlock.
const std::shared_ptr< StatementBlock > & get_finalize_block() const noexcept
Getter for member variable EigenNewtonSolverBlock::finalize_block.
Represents a LAG statement in the mod file.
Base class for all Abstract Syntax Tree node types.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< Integer > with
an increment factor
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< ModToken > token
token with location information
bool is_watch() const noexcept override
Check if the ast node is an instance of ast::Watch.
const std::shared_ptr< Unit > & get_unit2() const noexcept
Getter for member variable FactorDef::unit2.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Unit > & get_unit() const noexcept
Getter for member variable ParamAssign::unit.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable IfStatement::statement_block.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
Represents LINEAR block in the NMODL.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
DerivimplicitCallback * clone() const override
Return a copy of the current node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
Represents SUFFIX statement in NMODL.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
PartialEquation * clone() const override
Return a copy of the current node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
static const std::string BinaryOpNames[]
string representation of ast::BinaryOp
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::vector< std::shared_ptr< ThreadsafeVar > > ThreadsafeVarVector
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
DerivativeBlock * clone() const override
Return a copy of the current node.
std::shared_ptr< ModToken > token
token with location information
void set_token(const ModToken &tok)
Set token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
bool is_ba_block() const noexcept override
Check if the ast node is an instance of ast::BABlock.
std::vector< std::shared_ptr< PointerVar > > PointerVarVector
const ArgumentVector & get_parameters() const noexcept override
Getter for member variable ForNetcon::parameters.
type of ast::ForAllStatement
const std::shared_ptr< Expression > & get_length() const noexcept
Getter for member variable IndexedName::length.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable FactorDef::name.
std::shared_ptr< Expression > increment
TODO.
Represents TABLE statement in NMODL.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Expression > & get_condition() const noexcept
Getter for member variable ElseIfStatement::condition.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const ParamAssignVector & get_statements() const noexcept
Getter for member variable ParamBlock::statements.
std::shared_ptr< StatementBlock > statement_block
TODO.
bool is_partial_equation() const noexcept override
Check if the ast node is an instance of ast::PartialEquation.
Represent a callback to NEURON's derivimplicit solver.
std::shared_ptr< ModToken > token
token with location information
Represent queue statement in NMODL.
bool is_for_netcon() const noexcept override
Check if the ast node is an instance of ast::ForNetcon.
std::shared_ptr< Expression > lhs
TODO.
void set_token(const ModToken &tok)
Set token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
bool is_react_var_name() const noexcept override
Check if the ast node is an instance of ast::ReactVarName.
const std::shared_ptr< Name > & get_type() const noexcept
Getter for member variable Suffix::type.
const ArgumentVector & get_parameters() const noexcept override
Getter for member variable FunctionTableBlock::parameters.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
NonLinEquation * clone() const override
Return a copy of the current node.
virtual std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
NodeVector blocks
Vector of top level blocks in the mod file.
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< Number > & get_from() const noexcept
Getter for member variable AssignedDefinition::from.
std::shared_ptr< ModToken > token
token with location information
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Integer > value
Value of the macro.
std::shared_ptr< String > value
Value of name.
type of ast::PartialBlock
Float * clone() const override
Return a copy of the current node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< Identifier > name
TODO.
type of ast::BreakpointBlock
void set_token(const ModToken &tok)
Set token for the current ast node.
virtual std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Expression > expression
TODO.
std::shared_ptr< Expression > expression
TODO.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const ElseIfStatementVector & get_elseifs() const noexcept
Getter for member variable IfStatement::elseifs.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< StatementBlock > initialize_block
Statement block to be executed before calling newton solver.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_match_block() const noexcept override
Check if the ast node is an instance of ast::MatchBlock.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Name > & get_type() const noexcept
Getter for member variable Valence::type.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::ExpressionStatement
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< StatementBlock > & get_functor_block() const noexcept
Getter for member variable EigenNewtonSolverBlock::functor_block.
const std::shared_ptr< StatementBlock > & get_ifsolerr() const noexcept
Getter for member variable SolveBlock::ifsolerr.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
void set_token(const ModToken &tok)
Set token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_queue_expression_type() const noexcept override
Check if the ast node is an instance of ast::QueueExpressionType.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
WatchStatement * clone() const override
Return a copy of the current node.
bool is_lin_equation() const noexcept override
Check if the ast node is an instance of ast::LinEquation.
type of ast::IndependentBlock
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
External * clone() const override
Return a copy of the current node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
type of ast::LocalListStatement
type of ast::ReactionStatement
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable DerivativeBlock::statement_block.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
type of ast::ElseIfStatement
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Expression > left_linxpression
TODO.
void negate() override
Negate the value of current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
ConstructorBlock * clone() const override
Return a copy of the current node.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable ConstructorBlock::statement_block.
const std::shared_ptr< Identifier > & get_name() const noexcept
Getter for member variable PlotVar::name.
virtual std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
Represents specific element of an array variable.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< String > value
Name of prime variable.
QueueStatement * clone() const override
Return a copy of the current node.
std::shared_ptr< Integer > value
TODO.
NonspecificCurVar * clone() const override
Return a copy of the current node.
std::shared_ptr< Integer > n_state_vars
number of state vars used in solve
bool is_before_block() const noexcept override
Check if the ast node is an instance of ast::BeforeBlock.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_partial_block() const noexcept override
Check if the ast node is an instance of ast::PartialBlock.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
bool is_number() const noexcept override
Check if the ast node is an instance of ast::Number.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
const std::shared_ptr< StatementBlock > & get_variable_block() const noexcept
Getter for member variable EigenLinearSolverBlock::variable_block.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable NeuronBlock::statement_block.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const ArgumentVector & get_parameters() const noexcept override
Getter for member variable FunctionBlock::parameters.
virtual AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
bool is_derivimplicit_callback() const noexcept override
Check if the ast node is an instance of ast::DerivimplicitCallback.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
bool is_else_if_statement() const noexcept override
Check if the ast node is an instance of ast::ElseIfStatement.
std::shared_ptr< ModToken > token
token with location information
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
LocalVar * clone() const override
Return a copy of the current node.
ElectrodeCurVar * clone() const override
Return a copy of the current node.
Represents a BREAKPOINT block in NMODL.
BAType get_value() const noexcept
Getter for member variable BABlockType::value.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< QueueExpressionType > qtype
queue type (put/get)
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
type of ast::UnaryOperator
bool is_non_lin_equation() const noexcept override
Check if the ast node is an instance of ast::NonLinEquation.
virtual const ArgumentVector & get_parameters() const
Match * clone() const override
Return a copy of the current node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Expression > condition
TODO.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Represents a block to be executed before or after another block.
std::shared_ptr< ConstantVar > constant
single constant variable
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable ConstantVar::name.
ElectrodeCurVarVector currents
Vector of electrode current variables.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Name > name
Variable name.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
ArgumentVector parameters
Vector of the parameters.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< PlotDeclaration > & get_plot() const noexcept
Getter for member variable PlotBlock::plot.
std::string value
Value of string.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< StatementBlock > update_states_block
update back states from X
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Name > name
TODO.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable FunctionBlock::statement_block.
const ThreadsafeVarVector & get_variables() const noexcept
Getter for member variable ThreadSafe::variables.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Expression > & get_to() const noexcept
Getter for member variable FromStatement::to.
std::shared_ptr< StatementBlock > setup_x_block
update X from states
VarName * clone() const override
Return a copy of the current node.
Represent CONSERVE statement in NMODL.
const StatementVector & get_solve_statements() const noexcept
Getter for member variable NrnStateBlock::solve_statements.
void set_token(const ModToken &tok)
Set token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
bool is_double() const noexcept override
Check if the ast node is an instance of ast::Double.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Name > name1
TODO.
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable WriteIonVar::name.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable BbcorePointerVar::name.
ConductanceHint * clone() const override
Return a copy of the current node.
std::shared_ptr< Double > value
Value of new timestep.
BreakpointBlock * clone() const override
Return a copy of the current node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
Base class for all expressions in the NMODL.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< Number > & get_value() const noexcept
Getter for member variable ParamAssign::value.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable DestructorBlock::statement_block.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Unit > unit
Unit for the variable.
bool is_while_statement() const noexcept override
Check if the ast node is an instance of ast::WhileStatement.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const SectionVarVector & get_sections() const noexcept
Getter for member variable Section::sections.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
bool is_pointer() const noexcept override
Check if the ast node is an instance of ast::Pointer.
Represents an INCLUDE statement in NMODL.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
Represent MUTEXLOCK statement in NMODL.
Represents binary expression in the NMODL.
void set_token(const ModToken &tok)
Set token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
virtual std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< String > & get_value() const noexcept
Getter for member variable Name::value.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
TableStatement * clone() const override
Return a copy of the current node.
bool is_double_unit() const noexcept override
Check if the ast node is an instance of ast::DoubleUnit.
Wrap any other expression type.
bool is_extern_var() const noexcept override
Check if the ast node is an instance of ast::ExternVar.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Name > name
Name of the macro.
std::shared_ptr< Identifier > name
TODO.
const std::shared_ptr< Unit > & get_unit() const noexcept
Getter for member variable IndependentDefinition::unit.
std::shared_ptr< ModToken > token
token with location information
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
void set_token(const ModToken &tok)
Set token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
ReactionOp
enum type used for Reaction statement
std::vector< std::shared_ptr< Statement > > StatementVector
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::ReactVarName
const std::shared_ptr< Double > & get_min() const noexcept
Getter for member variable Limits::min.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
double to_double() override
Return value of the current ast node as double.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
FirstLastType
enum type for partial equation types
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string eval() const
Return enum value in string form.
LinearBlock * clone() const override
Return a copy of the current node.
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< Name > & get_steadystate() const noexcept
Getter for member variable SolveBlock::steadystate.
Represents a C code block.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const std::shared_ptr< String > & get_ontology_id() const noexcept
Getter for member variable Useion::ontology_id.
std::shared_ptr< ModToken > token
token with location information
virtual std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
EigenLinearSolverBlock * clone() const override
Return a copy of the current node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Number > from
TODO.
bool is_global() const noexcept override
Check if the ast node is an instance of ast::Global.
const std::shared_ptr< String > & get_filename() const noexcept
Getter for member variable Include::filename.
Operator used in ast::BinaryExpression.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
virtual std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Integer > order
order of ODE
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Represent solution of a block in the AST.
std::shared_ptr< Expression > reaction1
TODO.
std::vector< std::shared_ptr< ParamAssign > > ParamAssignVector
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Number > & get_value() const noexcept
Getter for member variable ConstantVar::value.
Represents POINTER statement in NMODL.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
type of ast::ConstantStatement
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable Stepped::name.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Integer > & get_with() const noexcept
Getter for member variable IndependentDefinition::with.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Expression > & get_expr() const noexcept
Getter for member variable Conserve::expr.
UnaryOperator * clone() const override
Return a copy of the current node.
const std::shared_ptr< Double > & get_value() const noexcept
Getter for member variable Valence::value.
ReactionOperator * clone() const override
Return a copy of the current node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
ReactionOp get_value() const noexcept
Getter for member variable ReactionOperator::value.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< String > & get_name() const noexcept
Getter for member variable Unit::name.
std::vector< std::shared_ptr< RangeVar > > RangeVarVector
const std::shared_ptr< Integer > & get_index() const noexcept
Getter for member variable PlotVar::index.
const std::shared_ptr< String > & get_title() const noexcept
Getter for member variable Model::title.
bool is_nrn_state_block() const noexcept override
Check if the ast node is an instance of ast::NrnStateBlock.
type of ast::ConstantBlock
const NameVector & get_depend_vars() const noexcept
Getter for member variable TableStatement::depend_vars.
ReadIonVarVector readlist
Variables being read.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const std::shared_ptr< Integer > & get_length() const noexcept
Getter for member variable AssignedDefinition::length.
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable Define::name.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
virtual std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_assigned_definition() const noexcept override
Check if the ast node is an instance of ast::AssignedDefinition.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< VarName > & get_name() const noexcept
Getter for member variable ReactVarName::name.
Define * clone() const override
Return a copy of the current node.
std::shared_ptr< Block > node_to_solve
Block to be solved (typically derivative)
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Name > name
TODO.
Represents GLOBAL statement in NMODL.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
IndexedName * clone() const override
Return a copy of the current node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
type of ast::ElseStatement
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
Represents a AFTER block in NMODL.
const std::shared_ptr< Identifier > & get_name() const noexcept
Getter for member variable AssignedDefinition::name.
std::shared_ptr< ModToken > token
token with location information
Represents a CONSTRUCTOR block in the NMODL.
const std::shared_ptr< Number > & get_to() const noexcept
Getter for member variable AssignedDefinition::to.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable DiscreteBlock::statement_block.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< PlotDeclaration > plot
Vector of plot variables.
const std::shared_ptr< Expression > & get_expression() const noexcept
Getter for member variable ProtectStatement::expression.
Represent a single variable of type BBCOREPOINTER.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
bool is_destructor_block() const noexcept override
Check if the ast node is an instance of ast::DestructorBlock.
std::shared_ptr< Expression > expression
TODO.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_number_range() const noexcept override
Check if the ast node is an instance of ast::NumberRange.
std::vector< std::shared_ptr< Node > > NodeVector
const std::shared_ptr< Unit > & get_unit1() const noexcept
Getter for member variable UnitDef::unit1.
Represents a INITIAL block in the NMODL.
Include * clone() const override
Return a copy of the current node.
virtual AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const std::shared_ptr< Expression > & get_expression() const noexcept
Getter for member variable ParenExpression::expression.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::shared_ptr< String > statement
C code as a string.
std::shared_ptr< Unit > unit
TODO.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
void negate() override
Negate the value of current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Name > name
Name of the derivative block.
std::shared_ptr< Expression > react
TODO.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Unit > & get_unit() const noexcept
Getter for member variable Argument::unit.
void set_token(const ModToken &tok)
Set token for the current ast node.
const VarNameVector & get_variables() const noexcept
Getter for member variable Sens::variables.
const std::shared_ptr< StatementBlock > & get_update_states_block() const noexcept
Getter for member variable EigenNewtonSolverBlock::update_states_block.
const RangeVarVector & get_variables() const noexcept
Getter for member variable Range::variables.
void set_token(const ModToken &tok)
Set token for the current ast node.
bool is_limits() const noexcept override
Check if the ast node is an instance of ast::Limits.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< StatementBlock > & get_update_states_block() const noexcept
Getter for member variable EigenLinearSolverBlock::update_states_block.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable KineticBlock::name.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable ElseStatement::statement_block.
Boolean * clone() const override
Return a copy of the current node.
symtab::ModelSymbolTable * get_model_symbol_table()
Return global symbol table for the mod file.
std::shared_ptr< Unit > unit
TODO.
bool is_reset() const noexcept override
Check if the ast node is an instance of ast::Reset.
const std::shared_ptr< Name > & get_name1() const noexcept
Getter for member variable PartialEquation::name1.
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< Integer > & get_value() const noexcept
Getter for member variable ReactVarName::value.
std::shared_ptr< Name > name
TODO.
bool is_block() const noexcept override
Check if the ast node is an instance of ast::Block.
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< Integer > & get_n_state_vars() const noexcept
Getter for member variable EigenLinearSolverBlock::n_state_vars.
Represent statement in CONSTANT block of NMODL.
std::shared_ptr< Double > max
TODO.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
type of ast::NonLinearBlock
const std::shared_ptr< Expression > & get_condition() const noexcept
Getter for member variable IfStatement::condition.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Name > name
TODO.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
bool is_partial_boundary() const noexcept override
Check if the ast node is an instance of ast::PartialBoundary.
Represents top level AST node for whole NMODL input.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_queue_statement() const noexcept override
Check if the ast node is an instance of ast::QueueStatement.
AssignedDefinition * clone() const override
Return a copy of the current node.
NonLinearBlock * clone() const override
Return a copy of the current node.
OntologyStatement * clone() const override
Return a copy of the current node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
IfStatement * clone() const override
Return a copy of the current node.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
FunctionCall * clone() const override
Return a copy of the current node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
std::shared_ptr< Expression > from
TODO.
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Expression > & get_reaction2() const noexcept
Getter for member variable ReactionStatement::reaction2.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_name() const noexcept override
Check if the ast node is an instance of ast::Name.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
Represents a STEPPED block in the NMODL.
const std::shared_ptr< Name > & get_ion() const noexcept
Getter for member variable ConductanceHint::ion.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
String * clone() const override
Return a copy of the current node.
Valence * clone() const override
Return a copy of the current node.
Pointer * clone() const override
Return a copy of the current node.
std::shared_ptr< Expression > to
TODO.
bool is_global_var() const noexcept override
Check if the ast node is an instance of ast::GlobalVar.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Expression > expression
TODO.
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Boolean > & get_gt() const noexcept
Getter for member variable FactorDef::gt.
PlotVarVector variables
TODO.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
ConstantBlock * clone() const override
Return a copy of the current node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Number > from
TODO.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< StatementBlock > functor_block
odes as functor for eigen
NameVector table_vars
Variables in the table.
ReadIonVar * clone() const override
Return a copy of the current node.
std::shared_ptr< Name > name
TODO.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
AssignedDefinitionVector definitions
Vector of state variables.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable NonspecificCurVar::name.
LinEquation * clone() const override
Return a copy of the current node.
BinaryExpression * clone() const override
Return a copy of the current node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
bool is_binary_operator() const noexcept override
Check if the ast node is an instance of ast::BinaryOperator.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< Integer > at
Value specified with @
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable ReadIonVar::name.
LocalVarVector::const_iterator insert_local_var(LocalVarVector::const_iterator position, const std::shared_ptr< LocalVar > &n)
Insert member to variables.
std::string value
Value of float.
const std::shared_ptr< Name > & get_name3() const noexcept
Getter for member variable PartialEquation::name3.
virtual Identifier * clone() const override
Return a copy of the current node.
ArgumentVector parameters
Vector of the parameters.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
FunctionTableBlock * clone() const override
Return a copy of the current node.
const std::shared_ptr< Identifier > & get_name() const noexcept
Getter for member variable LagStatement::name.
WatchVector statements
Vector of watch statements.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
Represent CONSTANT block in the mod file.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::vector< std::shared_ptr< Number > > NumberVector
bool is_useion() const noexcept override
Check if the ast node is an instance of ast::Useion.
void set_token(const ModToken &tok)
Set token for the current ast node.
Represents a ASSIGNED block in the NMODL.
const std::shared_ptr< Name > & get_conductance() const noexcept
Getter for member variable ConductanceHint::conductance.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
Represents RANGE variables statement in NMODL.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Name > & get_block_name() const noexcept
Getter for member variable SolveBlock::block_name.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
const std::shared_ptr< Unit > & get_unit() const noexcept
Getter for member variable DoubleUnit::unit.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
BABlock * clone() const override
Return a copy of the current node.
type of ast::PartialBoundary
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
bool is_kinetic_block() const noexcept override
Check if the ast node is an instance of ast::KineticBlock.
virtual std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const GlobalVarVector & get_variables() const noexcept
Getter for member variable Global::variables.
type of ast::ProtectStatement
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_identifier() const noexcept override
Check if the ast node is an instance of ast::Identifier.
Represents a BEFORE block in NMODL.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
Represent symbol table for a NMODL block.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< StatementBlock > variable_block
Statements to be declared in the functor.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Expression > & get_expression() const noexcept
Getter for member variable UnaryExpression::expression.
encapsulates everything related to NMODL code generation framework
const std::shared_ptr< Integer > & get_n_state_vars() const noexcept
Getter for member variable EigenNewtonSolverBlock::n_state_vars.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable FunctionCall::name.
std::shared_ptr< ModToken > token
token with location information
ThreadsafeVarVector variables
Vector of thread safe variables.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Expression > condition
TODO.
bool is_initial_block() const noexcept override
Check if the ast node is an instance of ast::InitialBlock.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Name > name
Name of the channel.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< PrimeName > prime
TODO.
const UnaryOperator & get_op() const noexcept
Getter for member variable UnaryExpression::op.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::vector< std::shared_ptr< ElseIfStatement > > ElseIfStatementVector
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable NonLinearBlock::name.
std::shared_ptr< Name > name
TODO.
std::shared_ptr< Expression > expression
TODO.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
ElseStatement * clone() const override
Return a copy of the current node.
std::shared_ptr< Name > name
TODO.
void set_token(const ModToken &tok)
Set token for the current ast node.
bool is_independent_definition() const noexcept override
Check if the ast node is an instance of ast::IndependentDefinition.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
IndependentBlock * clone() const override
Return a copy of the current node.
const IndependentDefinitionVector & get_definitions() const noexcept
Getter for member variable IndependentBlock::definitions.
virtual std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable ForNetcon::statement_block.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Boolean > sweep
TODO.
std::shared_ptr< Name > name
Name of the procedure.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::vector< std::shared_ptr< Name > > NameVector
IndependentDefinition * clone() const override
Return a copy of the current node.
std::shared_ptr< Name > block_name
Name of the block to solve.
void set_token(const ModToken &tok)
Set token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
Watch * clone() const override
Return a copy of the current node.
BinaryOperator * clone() const override
Return a copy of the current node.
double to_double() override
Return value of the current ast node as double.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
Represents DERIVATIVE block in the NMODL.
std::shared_ptr< StatementBlock > update_states_block
update back states from X
ProtectStatement * clone() const override
Return a copy of the current node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
virtual AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Expression > expression
TODO.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
FactorDef * clone() const override
Return a copy of the current node.
std::shared_ptr< ModToken > token
token with location information
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Unit > unit1
TODO.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< ModToken > token
token with location information
bool is_threadsafe_var() const noexcept override
Check if the ast node is an instance of ast::ThreadsafeVar.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
virtual std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Expression > expr
TODO.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const ExpressionVector & get_arguments() const noexcept
Getter for member variable FunctionCall::arguments.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
std::shared_ptr< Identifier > name
Name of array variable.
WhileStatement * clone() const override
Return a copy of the current node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Represents an argument to functions and procedures.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::InitialBlock
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
Useion * clone() const override
Return a copy of the current node.
std::shared_ptr< ModToken > token
token with location information
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::vector< std::shared_ptr< Argument > > ArgumentVector
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable ForAllStatement::name.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::vector< std::shared_ptr< LocalVar > > LocalVarVector
ArgumentVector parameters
Arguments to the for netcon block.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
bool is_stepped() const noexcept override
Check if the ast node is an instance of ast::Stepped.
std::shared_ptr< ModToken > token
token with location information
std::vector< std::shared_ptr< GlobalVar > > GlobalVarVector
const NumberVector & get_values() const noexcept
Getter for member variable Stepped::values.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< ModToken > token
token with location information
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable LonDifuse::name.
bool is_electrode_cur_var() const noexcept override
Check if the ast node is an instance of ast::ElectrodeCurVar.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< ModToken > token
token with location information
std::string value
Value of double.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
ExternVarVector variables
Vector of external variables.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
type of ast::FromStatement
bool is_linear_block() const noexcept override
Check if the ast node is an instance of ast::LinearBlock.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable InitialBlock::statement_block.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Identifier > name
Name of the argument.
QueueType
enum type for queue types
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
type of ast::NonspecificCurVar
const std::shared_ptr< Expression > & get_react() const noexcept
Getter for member variable Conserve::react.
std::shared_ptr< Expression > expression
TODO.
type of ast::FunctionBlock
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
bool is_procedure_block() const noexcept override
Check if the ast node is an instance of ast::ProcedureBlock.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
const std::string & get_value() const noexcept
Getter for member variable String::value.
const WatchVector & get_statements() const noexcept
Getter for member variable WatchStatement::statements.
std::shared_ptr< Number > start
TODO.
MatchBlock * clone() const override
Return a copy of the current node.
const std::shared_ptr< Unit > & get_unit2() const noexcept
Getter for member variable UnitDef::unit2.
WriteIonVarVector writelist
Variables being written.
const std::shared_ptr< FirstLastTypeIndex > & get_index() const noexcept
Getter for member variable PartialBoundary::index.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::vector< std::shared_ptr< Match > > MatchVector
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable ProcedureBlock::statement_block.
PlotVar * clone() const override
Return a copy of the current node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
FirstLastType get_value() const noexcept
Getter for member variable FirstLastTypeIndex::value.
std::shared_ptr< Unit > unit2
TODO.
NodeVector::const_iterator insert_node(NodeVector::const_iterator position, const std::shared_ptr< Node > &n)
Insert member to blocks.
VarNameVector variables
TODO.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_electrode_current() const noexcept override
Check if the ast node is an instance of ast::ElectrodeCurrent.
Represents a float variable.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
ParamAssignVector statements
Vector of parameters.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< Name > name
TODO.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_nonspecific_cur_var() const noexcept override
Check if the ast node is an instance of ast::NonspecificCurVar.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< ModToken > token
token with location information
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Verbatim * clone() const override
Return a copy of the current node.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
const std::shared_ptr< Number > & get_from() const noexcept
Getter for member variable IndependentDefinition::from.
FirstLastTypeIndex * clone() const override
Return a copy of the current node.
const std::shared_ptr< Name > & get_name2() const noexcept
Getter for member variable PartialEquation::name2.
bool is_section() const noexcept override
Check if the ast node is an instance of ast::Section.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Name > name
TODO.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
Represent linear solver solution block based on Eigen.
bool is_verbatim() const noexcept override
Check if the ast node is an instance of ast::Verbatim.
RangeVarVector variables
Vector of range variables.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
LocalVarVector variables
TODO.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Number > min
TODO.
std::shared_ptr< ModToken > token
token with location information
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::vector< std::shared_ptr< VarName > > VarNameVector
std::shared_ptr< PlotVar > name
TODO.
std::shared_ptr< ModToken > token
token with location information
void set_token(const ModToken &tok)
Set token for the current ast node.
const LocalVarVector & get_variables() const noexcept
Getter for member variable LocalListStatement::variables.
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable FunctionTableBlock::name.
std::shared_ptr< Identifier > name
Name of variable.
void set_token(const ModToken &tok)
Set token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Unit > & get_unit1() const noexcept
Getter for member variable FactorDef::unit1.
bool is_constructor_block() const noexcept override
Check if the ast node is an instance of ast::ConstructorBlock.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
Global * clone() const override
Return a copy of the current node.
std::shared_ptr< Expression > lhs
LHS of the binary expression.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const PointerVarVector & get_variables() const noexcept
Getter for member variable Pointer::variables.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
bool is_if_statement() const noexcept override
Check if the ast node is an instance of ast::IfStatement.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const std::shared_ptr< Expression > & get_to() const noexcept
Getter for member variable TableStatement::to.
std::vector< std::shared_ptr< ReadIonVar > > ReadIonVarVector
void set_token(const ModToken &tok)
Set token for the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< Expression > value
TODO.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
int value
Value of integer.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
Represents an integer variable.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
bool is_function_block() const noexcept override
Check if the ast node is an instance of ast::FunctionBlock.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
std::shared_ptr< ModToken > token
token with location information
ExpressionVector definitions
Vector of unit statements.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
BinaryOp get_value() const noexcept
Getter for member variable BinaryOperator::value.
const std::shared_ptr< Expression > & get_left_linxpression() const noexcept
Getter for member variable LinEquation::left_linxpression.
std::vector< std::shared_ptr< PlotVar > > PlotVarVector
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< Identifier > name
Name of the variable (TODO)
void set_token(const ModToken &tok)
Set token for the current ast node.
PlotBlock * clone() const override
Return a copy of the current node.
const NodeVector & get_blocks() const noexcept
Getter for member variable Include::blocks.
Represents a DESTRUCTOR block in the NMODL.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable FromStatement::name.
ParamAssign * clone() const override
Return a copy of the current node.
const ElectrodeCurVarVector & get_currents() const noexcept
Getter for member variable ElectrodeCurrent::currents.
void set_token(const ModToken &tok)
Set token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< Name > & get_name1() const noexcept
Getter for member variable PartialBoundary::name1.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
Represent SENS statement in NMODL.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
const std::shared_ptr< BABlock > & get_bablock() const noexcept
Getter for member variable AfterBlock::bablock.
const std::shared_ptr< String > & get_value() const noexcept
Getter for member variable PrimeName::value.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
type of ast::BbcorePointerVar
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
virtual Statement * clone() const override
Return a copy of the current node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable PartialBlock::statement_block.
std::shared_ptr< String > ontology_id
Ontology name.
bool is_statement() const noexcept override
Check if the ast node is an instance of ast::Statement.
bool is_wrapped_expression() const noexcept override
Check if the ast node is an instance of ast::WrappedExpression.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_nonspecific() const noexcept override
Check if the ast node is an instance of ast::Nonspecific.
bool is_constant_var() const noexcept override
Check if the ast node is an instance of ast::ConstantVar.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Unit > unit
Unit of the argument.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< QueueExpressionType > & get_qtype() const noexcept
Getter for member variable QueueStatement::qtype.
std::shared_ptr< StatementBlock > statement_block
TODO.
bool is_function_call() const noexcept override
Check if the ast node is an instance of ast::FunctionCall.
std::shared_ptr< Expression > expression2
TODO.
UnitState * clone() const override
Return a copy of the current node.
ConstantStatement * clone() const override
Return a copy of the current node.
std::shared_ptr< Expression > expression
TODO.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Integer > & get_value() const noexcept
Getter for member variable Define::value.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const BbcorePointerVarVector & get_variables() const noexcept
Getter for member variable BbcorePointer::variables.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
virtual std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_discrete_block() const noexcept override
Check if the ast node is an instance of ast::DiscreteBlock.
bool is_bbcore_pointer() const noexcept override
Check if the ast node is an instance of ast::BbcorePointer.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
bool is_section_var() const noexcept override
Check if the ast node is an instance of ast::SectionVar.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
Type to represent different block types for before/after block.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
NeuronBlock * clone() const override
Return a copy of the current node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::vector< std::shared_ptr< BbcorePointerVar > > BbcorePointerVarVector
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_model() const noexcept override
Check if the ast node is an instance of ast::Model.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< Identifier > name
TODO.
const std::shared_ptr< String > & get_statement() const noexcept
Getter for member variable Verbatim::statement.
std::shared_ptr< Integer > length
Length in case of array.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable Useion::name.
Sens * clone() const override
Return a copy of the current node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< StatementBlock > finalize_block
Statement block to be executed after calling linear solver.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable PointerVar::name.
const std::shared_ptr< Double > & get_max() const noexcept
Getter for member variable Limits::max.
Represents the coreneuron nrn_state callback function.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable ForAllStatement::statement_block.
virtual std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< String > filename
path to the file to include
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Identifier > & get_name() const noexcept
Getter for member variable VarName::name.
std::shared_ptr< ModToken > token
token with location information
bool is_range() const noexcept override
Check if the ast node is an instance of ast::Range.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
Represents a prime variable (for ODE)
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
AfterBlock * clone() const override
Return a copy of the current node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
MutexUnlock * clone() const override
Return a copy of the current node.
NameVector solvefor
Name of the integration method.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< ModToken > token
token with location information
BinaryOperator op
Operator.
std::shared_ptr< Expression > expression1
TODO.
type of ast::ProcedureBlock
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
Represents BBCOREPOINTER statement in NMODL.
std::shared_ptr< ModToken > token
token with location information
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::BbcorePointer
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< Expression > & get_index() const noexcept
Getter for member variable VarName::index.
bool is_define() const noexcept override
Check if the ast node is an instance of ast::Define.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< String > title
TODO.
bool is_compartment() const noexcept override
Check if the ast node is an instance of ast::Compartment.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ExternVarVector & get_variables() const noexcept
Getter for member variable External::variables.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::ThreadsafeVar
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Double > value
TODO.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
ArgumentVector parameters
Parameters to the net receive block.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Identifier > & get_name() const noexcept
Getter for member variable PartialBoundary::name.
int value
Value of boolean.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
Reset * clone() const override
Return a copy of the current node.
const AssignedDefinitionVector & get_definitions() const noexcept
Getter for member variable StateBlock::definitions.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Expression > reaction2
TODO.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const WriteIonVarVector & get_writelist() const noexcept
Getter for member variable Useion::writelist.
const std::shared_ptr< Unit > & get_unit() const noexcept
Getter for member variable FunctionTableBlock::unit.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
Represents differential equation in DERIVATIVE block.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Integer * clone() const override
Return a copy of the current node.
type of ast::QueueStatement
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< Unit > & get_unit() const noexcept
Getter for member variable AssignedDefinition::unit.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable FromStatement::statement_block.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
SectionVarVector sections
Vector of section variables.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Expression > & get_expression() const noexcept
Getter for member variable PartialBoundary::expression.
const std::shared_ptr< Number > & get_start() const noexcept
Getter for member variable IndependentDefinition::start.
type of ast::UnaryExpression
bool is_protect_statement() const noexcept override
Check if the ast node is an instance of ast::ProtectStatement.
DoubleUnit * clone() const override
Return a copy of the current node.
type of ast::QueueExpressionType
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::shared_ptr< ModToken > token
token with location information
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Name > & get_byname() const noexcept
Getter for member variable LagStatement::byname.
type of ast::WhileStatement
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable ThreadsafeVar::name.
BbcorePointer * clone() const override
Return a copy of the current node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_update_dt() const noexcept override
Check if the ast node is an instance of ast::UpdateDt.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_match() const noexcept override
Check if the ast node is an instance of ast::Match.
bool is_eigen_newton_solver_block() const noexcept override
Check if the ast node is an instance of ast::EigenNewtonSolverBlock.
Represent LONGITUDINAL_DIFFUSION statement in NMODL.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::vector< std::shared_ptr< IndependentDefinition > > IndependentDefinitionVector
bool is_unit() const noexcept override
Check if the ast node is an instance of ast::Unit.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
type of ast::PartialEquation
ElseIfStatement * clone() const override
Return a copy of the current node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< PrimeName > & get_prime() const noexcept
Getter for member variable PartialEquation::prime.
Stepped * clone() const override
Return a copy of the current node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
NameVector depend_vars
dependent variables
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Valence > & get_valence() const noexcept
Getter for member variable Useion::valence.
Represents a boolean variable.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
bool is_terminal_block() const noexcept override
Check if the ast node is an instance of ast::TerminalBlock.
QueueType get_value() const noexcept
Getter for member variable QueueExpressionType::value.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
std::shared_ptr< VarName > name
TODO.
LagStatement * clone() const override
Return a copy of the current node.
BABlockType * clone() const override
Return a copy of the current node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Name > del2
TODO.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AssignedDefinitionVector definitions
Vector of assigned variables.
type of ast::LagStatement
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Double > & get_value() const noexcept
Getter for member variable FactorDef::value.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
bool is_sens() const noexcept override
Check if the ast node is an instance of ast::Sens.
const std::shared_ptr< Integer > & get_order() const noexcept
Getter for member variable PrimeName::order.
void set_token(const ModToken &tok)
Set token for the current ast node.
NonspecificCurVarVector currents
Vector of non specific variables.
Section * clone() const override
Return a copy of the current node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_external() const noexcept override
Check if the ast node is an instance of ast::External.
std::shared_ptr< ModToken > token
token with location information
ThreadSafe * clone() const override
Return a copy of the current node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
type of ast::PlotDeclaration
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< ModToken > token
token with location information
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< PlotVar > & get_name() const noexcept
Getter for member variable PlotDeclaration::name.
GlobalVar * clone() const override
Return a copy of the current node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable ExternVar::name.
bool is_float() const noexcept override
Check if the ast node is an instance of ast::Float.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const NameVector & get_solvefor() const noexcept
Getter for member variable NonLinearBlock::solvefor.
bool is_unit_block() const noexcept override
Check if the ast node is an instance of ast::UnitBlock.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Represents CONDUCTANCE statement in NMODL.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_pointer_var() const noexcept override
Check if the ast node is an instance of ast::PointerVar.
std::shared_ptr< StatementBlock > statement_block
TODO.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
bool is_plot_var() const noexcept override
Check if the ast node is an instance of ast::PlotVar.
std::shared_ptr< ModToken > token
token with location information
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
virtual Expression * clone() const override
Return a copy of the current node.
std::shared_ptr< Name > name
TODO.
WriteIonVar * clone() const override
Return a copy of the current node.
void set_token(const ModToken &tok)
Set token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
type of ast::ParenExpression
std::shared_ptr< Number > to
TODO.
const std::shared_ptr< Expression > & get_linxpression() const noexcept
Getter for member variable LinEquation::linxpression.
std::shared_ptr< Double > value
TODO.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
StepBlock * clone() const override
Return a copy of the current node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable ElectrodeCurVar::name.
const ConstantStatementVector & get_statements() const noexcept
Getter for member variable ConstantBlock::statements.
SolveBlock * clone() const override
Return a copy of the current node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
PlotDeclaration * clone() const override
Return a copy of the current node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
PrimeName * clone() const override
Return a copy of the current node.
std::shared_ptr< ModToken > token
token with location information
DestructorBlock * clone() const override
Return a copy of the current node.
Name * clone() const override
Return a copy of the current node.
const std::shared_ptr< ConstantVar > & get_constant() const noexcept
Getter for member variable ConstantStatement::constant.
Represent NEURON block in the mod file.
std::shared_ptr< Name > conductance
Conductance variable.
std::shared_ptr< StatementBlock > statement_block
TODO.
PointerVar * clone() const override
Return a copy of the current node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< String > ontology_id
Ontology to indicate the chemical ion.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Name > name3
TODO.
std::shared_ptr< Identifier > name
Name of the variable.
bool is_solve_block() const noexcept override
Check if the ast node is an instance of ast::SolveBlock.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
NameVector solvefor
Solve for specification (TODO)
double to_double() override
Return value of the current ast node as double.
bool is_var_name() const noexcept override
Check if the ast node is an instance of ast::VarName.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const StatementVector & get_statements() const noexcept
Getter for member variable StatementBlock::statements.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
bool is_net_receive_block() const noexcept override
Check if the ast node is an instance of ast::NetReceiveBlock.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Name > name1
TODO.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
void negate() override
Negate the value of current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< SolveBlock > & get_solve_block() const noexcept
Getter for member variable SolutionExpression::solve_block.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable ProcedureBlock::name.
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< Number > & get_max() const noexcept
Getter for member variable NumberRange::max.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
GlobalVarVector variables
Vector of global variables.
std::shared_ptr< ModToken > token
token with location information
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
Base class for all block scoped nodes.
const std::shared_ptr< StatementBlock > & get_initialize_block() const noexcept
Getter for member variable EigenLinearSolverBlock::initialize_block.
std::shared_ptr< Expression > node_to_solve
Block to be solved (callback node or solution node itself)
std::shared_ptr< Unit > unit
TODO.
bool is_write_ion_var() const noexcept override
Check if the ast node is an instance of ast::WriteIonVar.
std::string eval() const
Return value of the ast node.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
bool is_include() const noexcept override
Check if the ast node is an instance of ast::Include.
std::shared_ptr< Integer > index
TODO.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable NetReceiveBlock::statement_block.
type of ast::DerivimplicitCallback
type of ast::TableStatement
void set_token(const ModToken &tok)
Set token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::NonLinEquation
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable LinearBlock::statement_block.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Name > name
TODO.
PartialBoundary * clone() const override
Return a copy of the current node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::vector< std::shared_ptr< NonspecificCurVar > > NonspecificCurVarVector
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< ModToken > token
token with location information
bool is_indexed_name() const noexcept override
Check if the ast node is an instance of ast::IndexedName.
ForNetcon * clone() const override
Return a copy of the current node.
bool is_mutex_unlock() const noexcept override
Check if the ast node is an instance of ast::MutexUnlock.
std::shared_ptr< Name > name
TODO.
std::vector< std::shared_ptr< ElectrodeCurVar > > ElectrodeCurVarVector
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::DestructorBlock
virtual std::string get_node_name() const
Return name of of the node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable KineticBlock::statement_block.
const std::shared_ptr< Identifier > & get_name() const noexcept
Getter for member variable QueueStatement::name.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
type of ast::AssignedBlock
const std::shared_ptr< Unit > & get_unit() const noexcept
Getter for member variable ProcedureBlock::unit.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
bool is_diff_eq_expression() const noexcept override
Check if the ast node is an instance of ast::DiffEqExpression.
const std::shared_ptr< Expression > & get_from() const noexcept
Getter for member variable FromStatement::from.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Name > type
TODO.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
FromStatement * clone() const override
Return a copy of the current node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
Program * clone() const override
Return a copy of the current node.
const std::shared_ptr< String > & get_ontology_id() const noexcept
Getter for member variable OntologyStatement::ontology_id.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
type of ast::ConstructorBlock
const NameVector & get_table_vars() const noexcept
Getter for member variable TableStatement::table_vars.
const MatchVector & get_matchs() const noexcept
Getter for member variable MatchBlock::matchs.
std::shared_ptr< ModToken > token
token with location information
std::string eval() const
Return enum value in string form.
const std::shared_ptr< StatementBlock > & get_initialize_block() const noexcept
Getter for member variable EigenNewtonSolverBlock::initialize_block.
const NodeVector & get_blocks() const noexcept
Getter for member variable Program::blocks.
StatementVector statements
Vector of statements.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
RangeVar * clone() const override
Return a copy of the current node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable Suffix::name.
BbcorePointerVar * clone() const override
Return a copy of the current node.
std::shared_ptr< Name > name2
TODO.
std::shared_ptr< ModToken > token
token with location information
AssignedBlock * clone() const override
Return a copy of the current node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
type of ast::BinaryExpression
void set_token(const ModToken &tok)
Set token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Integer > with
TODO.
bool is_ba_block_type() const noexcept override
Check if the ast node is an instance of ast::BABlockType.
void set_token(const ModToken &tok)
Set token for the current ast node.
ReactVarName * clone() const override
Return a copy of the current node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable RangeVar::name.
void set_token(const ModToken &tok)
Set token for the current ast node.
type of ast::BinaryOperator
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
UpdateDt * clone() const override
Return a copy of the current node.
Argument * clone() const override
Return a copy of the current node.
MatchVector matchs
Vector of match statements.
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Expression > & get_expression() const noexcept
Getter for member variable ExpressionStatement::expression.
const std::shared_ptr< Identifier > & get_name() const noexcept
Getter for member variable IndexedName::name.
Represents ELECTRODE_CURRENT variables statement in NMODL.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Integer > & get_at() const noexcept
Getter for member variable VarName::at.
NodeVector blocks
AST of the included file.
void set_token(const ModToken &tok)
Set token for the current ast node.
ParenExpression * clone() const override
Return a copy of the current node.
Auto generated AST classes declaration.
std::shared_ptr< Name > method
Name of the integration method.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
type of ast::NetReceiveBlock
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_conductance_hint() const noexcept override
Check if the ast node is an instance of ast::ConductanceHint.
Base class for all AST node.
TerminalBlock * clone() const override
Return a copy of the current node.
FunctionBlock * clone() const override
Return a copy of the current node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< ElseStatement > elses
TODO.
Base class for all numbers.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
bool is_breakpoint_block() const noexcept override
Check if the ast node is an instance of ast::BreakpointBlock.
SteppedVector statements
Vector of statements.
const std::shared_ptr< Double > & get_value() const noexcept
Getter for member variable DoubleUnit::value.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Valence > valence
(TODO)
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
bool is_param_block() const noexcept override
Check if the ast node is an instance of ast::ParamBlock.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool eval() const
Return value of the ast node.
IndependentDefinitionVector definitions
TODO.
std::shared_ptr< Name > macro
if integer is a macro then it's name
std::shared_ptr< Unit > unit
TODO.
bool is_unit_def() const noexcept override
Check if the ast node is an instance of ast::UnitDef.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_watch_statement() const noexcept override
Check if the ast node is an instance of ast::WatchStatement.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
ConstantStatementVector statements
Vector of constant statements.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::StatementBlock
std::vector< std::shared_ptr< Watch > > WatchVector
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
Represents NONLINEAR block in the NMODL.
void set_token(const ModToken &tok)
Set token for the current ast node.
KineticBlock * clone() const override
Return a copy of the current node.
std::string eval() const
Return enum value in string form.
std::shared_ptr< ModToken > token
token with location information
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const std::shared_ptr< Unit > & get_unit() const noexcept
Getter for member variable FunctionBlock::unit.
BeforeBlock * clone() const override
Return a copy of the current node.
const NameVector & get_solvefor() const noexcept
Getter for member variable KineticBlock::solvefor.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
ReactionStatement * clone() const override
Return a copy of the current node.
Represents a double variable.
const std::shared_ptr< Expression > & get_expression() const noexcept
Getter for member variable Watch::expression.
StatementBlock * clone() const override
Return a copy of the current node.
EigenNewtonSolverBlock * clone() const override
Return a copy of the current node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_unit_state() const noexcept override
Check if the ast node is an instance of ast::UnitState.
std::shared_ptr< FirstLastTypeIndex > index
TODO.
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable NonLinearBlock::statement_block.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
bool is_binary_expression() const noexcept override
Check if the ast node is an instance of ast::BinaryExpression.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
ParamBlock * clone() const override
Return a copy of the current node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
StateBlock * clone() const override
Return a copy of the current node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Unit > unit
Unit if specified.
bool is_independent_block() const noexcept override
Check if the ast node is an instance of ast::IndependentBlock.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_local_var() const noexcept override
Check if the ast node is an instance of ast::LocalVar.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_solution_expression() const noexcept override
Check if the ast node is an instance of ast::SolutionExpression.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< ModToken > token
token with location information
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
Represents NONSPECIFIC_CURRENT variables statement in NMODL.
PointerVarVector variables
Vector of pointer variables.
BAType
enum type to distinguish BEFORE or AFTER blocks
void set_token(const ModToken &tok)
Set token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Represents a DEFINE statement in NMODL.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
Represents a STATE block in the NMODL.
const std::shared_ptr< Double > & get_value() const noexcept
Getter for member variable UpdateDt::value.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Number > value
Value of the constant.
static const std::string UnitStateTypeNames[]
string representation of ast::UnitStateType
type of ast::EigenNewtonSolverBlock
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< BABlockType > & get_type() const noexcept
Getter for member variable BABlock::type.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const AssignedDefinitionVector & get_definitions() const noexcept
Getter for member variable AssignedBlock::definitions.
void set_token(const ModToken &tok)
Set token for the current ast node.
type of ast::DiffEqExpression
const std::shared_ptr< Expression > & get_reaction1() const noexcept
Getter for member variable ReactionStatement::reaction1.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_factor_def() const noexcept override
Check if the ast node is an instance of ast::FactorDef.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
WatchVector::const_iterator insert_watch(WatchVector::const_iterator position, const std::shared_ptr< Watch > &n)
Insert member to statements.
std::shared_ptr< ModToken > token
token with location information
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
bool is_from_statement() const noexcept override
Check if the ast node is an instance of ast::FromStatement.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Double > abstol
TODO.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::vector< std::shared_ptr< Expression > > ExpressionVector
bool is_valence() const noexcept override
Check if the ast node is an instance of ast::Valence.
std::shared_ptr< Name > ion
Ion name.
std::vector< std::shared_ptr< Stepped > > SteppedVector
bool is_local_list_statement() const noexcept override
Check if the ast node is an instance of ast::LocalListStatement.
std::shared_ptr< Name > name
Name of the function.
std::shared_ptr< Name > del
TODO.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Limits > limit
TODO.
Represents THREADSAFE statement in NMODL.
NetReceiveBlock * clone() const override
Return a copy of the current node.
bool is_derivative_block() const noexcept override
Check if the ast node is an instance of ast::DerivativeBlock.
std::shared_ptr< Number > max
TODO.
bool is_node() const noexcept override
Check if the ast node is an instance of ast::Node.
std::shared_ptr< ModToken > token
token with location information
BbcorePointerVarVector variables
Vector of bbcore pointer variables.
ExpressionVector arguments
TODO.
bool is_step_block() const noexcept override
Check if the ast node is an instance of ast::StepBlock.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Name > name
TODO.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
bool is_string() const noexcept override
Check if the ast node is an instance of ast::String.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< StatementBlock > statement_block
TODO.
const std::shared_ptr< Limits > & get_limit() const noexcept
Getter for member variable ParamAssign::limit.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Expression > expression
TODO.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< StatementBlock > setup_x_block
update X from states
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Boolean > gt
Todo: Michael : rename variable gt as well.
bool is_paren_expression() const noexcept override
Check if the ast node is an instance of ast::ParenExpression.
std::shared_ptr< ModToken > token
token with location information
Represents CURIE information in NMODL.
bool is_after_block() const noexcept override
Check if the ast node is an instance of ast::AfterBlock.
std::vector< std::shared_ptr< AssignedDefinition > > AssignedDefinitionVector
std::string eval() const
Return enum value in string form.
ForAllStatement * clone() const override
Return a copy of the current node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< Number > & get_to() const noexcept
Getter for member variable IndependentDefinition::to.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable IndependentDefinition::name.
const std::shared_ptr< Expression > & get_from() const noexcept
Getter for member variable TableStatement::from.
virtual AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< ModToken > token
token with location information
const ArgumentVector & get_parameters() const noexcept override
Getter for member variable NetReceiveBlock::parameters.
const std::shared_ptr< Double > & get_abstol() const noexcept
Getter for member variable AssignedDefinition::abstol.
std::shared_ptr< ModToken > token
token with location information
const std::shared_ptr< Expression > & get_expression1() const noexcept
Getter for member variable ReactionStatement::expression1.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Name > name
Name of the kinetic block.
std::shared_ptr< Expression > from
from value
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< Name > & get_macro() const noexcept
Getter for member variable Integer::macro.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::vector< std::shared_ptr< SectionVar > > SectionVarVector
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_thread_safe() const noexcept override
Check if the ast node is an instance of ast::ThreadSafe.
bool is_eigen_linear_solver_block() const noexcept override
Check if the ast node is an instance of ast::EigenLinearSolverBlock.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Expression > & get_rhs() const noexcept
Getter for member variable NonLinEquation::rhs.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_table_statement() const noexcept override
Check if the ast node is an instance of ast::TableStatement.
std::shared_ptr< ModToken > token
token with location information
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< StatementBlock > & get_setup_x_block() const noexcept
Getter for member variable EigenNewtonSolverBlock::setup_x_block.
const std::shared_ptr< Identifier > & get_name() const noexcept
Getter for member variable LocalVar::name.
std::shared_ptr< Name > name
Name of the function table block.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Expression > index
index value in case of array
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
double to_double() override
Return value of the current ast node as double.
const ReactionOperator & get_op() const noexcept
Getter for member variable ReactionStatement::op.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::string eval() const
Return value of the ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable TerminalBlock::statement_block.
std::shared_ptr< String > name
TODO.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
bool is_else_statement() const noexcept override
Check if the ast node is an instance of ast::ElseStatement.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable LinearBlock::name.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< ModToken > token
token with location information
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable Compartment::name.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
Conserve * clone() const override
Return a copy of the current node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
ExternVar * clone() const override
Return a copy of the current node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Identifier > name
Name of the variable.
Base class for all identifiers.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
UnitBlock * clone() const override
Return a copy of the current node.
ElseIfStatementVector elseifs
TODO.
std::shared_ptr< Number > value
TODO.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< Block > & get_node_to_solve() const noexcept
Getter for member variable DerivimplicitCallback::node_to_solve.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Name > type
type of channel
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< StatementBlock > initialize_block
Statement block to be executed before calling linear solver.
const std::shared_ptr< Expression > & get_node_to_solve() const noexcept
Getter for member variable SolutionExpression::node_to_solve.
const std::shared_ptr< Name > & get_del() const noexcept
Getter for member variable PartialBoundary::del.
virtual std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
bool is_reaction_statement() const noexcept override
Check if the ast node is an instance of ast::ReactionStatement.
const std::shared_ptr< ElseStatement > & get_elses() const noexcept
Getter for member variable IfStatement::elses.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const std::shared_ptr< BinaryExpression > & get_expression() const noexcept
Getter for member variable DiffEqExpression::expression.
bool is_prime_name() const noexcept override
Check if the ast node is an instance of ast::PrimeName.
std::string eval() const
Return value of the ast node.
Represents block encapsulating list of statements.
const std::shared_ptr< Expression > & get_expression() const noexcept
Getter for member variable Compartment::expression.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Abstract base class for all constant visitors implementation.
std::shared_ptr< Expression > linxpression
TODO.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Represent RESET statement in NMODL.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::FunctionTableBlock
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Name > & get_name3() const noexcept
Getter for member variable PartialBoundary::name3.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_suffix() const noexcept override
Check if the ast node is an instance of ast::Suffix.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
type of ast::TerminalBlock
NrnStateBlock * clone() const override
Return a copy of the current node.
ProcedureBlock * clone() const override
Return a copy of the current node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable BABlock::statement_block.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Name > name
TODO.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
const std::shared_ptr< Name > & get_method() const noexcept
Getter for member variable SolveBlock::method.
SolutionExpression * clone() const override
Return a copy of the current node.
std::shared_ptr< ModToken > token
token with location information
void set_token(const ModToken &tok)
Set token for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
bool is_lon_difuse() const noexcept override
Check if the ast node is an instance of ast::LonDifuse.
virtual void visit_children(visitor::Visitor &v) override
visit children i.e.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
type of ast::OntologyStatement
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
NumberRange * clone() const override
Return a copy of the current node.
std::shared_ptr< Name > name
TODO.
std::shared_ptr< ModToken > token
token with location information
void set_token(const ModToken &tok)
Set token for the current ast node.
bool is_plot_block() const noexcept override
Check if the ast node is an instance of ast::PlotBlock.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
MutexLock * clone() const override
Return a copy of the current node.
type of ast::BlockComment
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_program() const noexcept override
Check if the ast node is an instance of ast::Program.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Boolean > & get_sweep() const noexcept
Getter for member variable IndependentDefinition::sweep.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable WhileStatement::statement_block.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Expression > to
to values
void set_token(const ModToken &tok)
Set token for the current ast node.
const ExpressionVector & get_definitions() const noexcept
Getter for member variable UnitBlock::definitions.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable SectionVar::name.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
const std::shared_ptr< Number > & get_start() const noexcept
Getter for member variable AssignedDefinition::start.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Unit > unit1
TODO.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable DerivativeBlock::name.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
type of ast::DerivativeBlock
bool is_read_ion_var() const noexcept override
Check if the ast node is an instance of ast::ReadIonVar.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable GlobalVar::name.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Expression > & get_lhs() const noexcept
Getter for member variable NonLinEquation::lhs.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
virtual std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const BinaryOperator & get_op() const noexcept
Getter for member variable BinaryExpression::op.
std::shared_ptr< Expression > condition
TODO.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Expression > & get_expression() const noexcept
Getter for member variable LonDifuse::expression.
std::shared_ptr< BinaryExpression > expression
Differential Expression.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
void set_token(const ModToken &tok)
Set token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
ArgumentVector parameters
Vector of the parameters.
std::shared_ptr< Name > name
TODO.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const NameVector & get_names() const noexcept
Getter for member variable LonDifuse::names.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Name > name
Name of ion.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
type of ast::ReactionOperator
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::shared_ptr< Expression > & get_expression2() const noexcept
Getter for member variable ReactionStatement::expression2.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Name > name3
TODO.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
ElectrodeCurrent * clone() const override
Return a copy of the current node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
bool is_state_block() const noexcept override
Check if the ast node is an instance of ast::StateBlock.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
Nonspecific * clone() const override
Return a copy of the current node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
static const std::string QueueTypeNames[]
string representation of ast::QueueType
std::shared_ptr< ModToken > token
token with location information
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const ArgumentVector & get_parameters() const noexcept override
Getter for member variable ProcedureBlock::parameters.
std::shared_ptr< Integer > n_state_vars
number of state vars used in solve
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
Represents EXTERNAL statement in NMODL.
std::string eval() const
Return enum value in string form.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< ModToken > token
token with location information
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const std::shared_ptr< Unit > & get_unit() const noexcept
Getter for member variable Stepped::unit.
const std::shared_ptr< Expression > & get_condition() const noexcept
Getter for member variable WhileStatement::condition.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Expression > & get_increment() const noexcept
Getter for member variable FromStatement::increment.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
static const std::string UnaryOpNames[]
string representation of ast::UnaryOp
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
bool is_bbcore_pointer_var() const noexcept override
Check if the ast node is an instance of ast::BbcorePointerVar.
std::shared_ptr< BABlock > bablock
Block to be called before.
bool is_for_all_statement() const noexcept override
Check if the ast node is an instance of ast::ForAllStatement.
Abstract base class for all visitors implementation.
std::shared_ptr< ModToken > token
token with location information
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
type of ast::ElectrodeCurVar
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Unit > & get_unit() const noexcept
Getter for member variable ConstantVar::unit.
std::shared_ptr< Name > name
Name of the variable.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
BinaryOp
enum Type for binary operators in NMODL
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Double > min
TODO.
virtual std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const std::string & get_value() const noexcept
Getter for member variable Float::value.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
virtual void set_name(const std::string &name)
Set name for the AST node.
std::shared_ptr< Name > name
TODO.
std::shared_ptr< ModToken > token
token with location information
void set_token(const ModToken &tok)
Set token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const std::shared_ptr< Expression > & get_expression() const noexcept
Getter for member variable WrappedExpression::expression.
bool is_plot_declaration() const noexcept override
Check if the ast node is an instance of ast::PlotDeclaration.
const ReadIonVarVector & get_readlist() const noexcept
Getter for member variable Useion::readlist.
std::shared_ptr< StatementBlock > variable_block
Statements to be declared in the functor.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
type of ast::WatchStatement
const std::shared_ptr< BABlock > & get_bablock() const noexcept
Getter for member variable BeforeBlock::bablock.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const NameVector & get_names() const noexcept
Getter for member variable Compartment::names.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
int get_value() const noexcept
Getter for member variable Integer::value.
std::shared_ptr< Number > start
TODO.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
Represent COMPARTMENT statement in NMODL.
bool is_statement_block() const noexcept override
Check if the ast node is an instance of ast::StatementBlock.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< Identifier > & get_name() const noexcept
Getter for member variable ParamAssign::name.
bool is_boolean() const noexcept override
Check if the ast node is an instance of ast::Boolean.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
Model * clone() const override
Return a copy of the current node.
std::shared_ptr< Unit > unit2
TODO.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const std::shared_ptr< StatementBlock > & get_variable_block() const noexcept
Getter for member variable EigenNewtonSolverBlock::variable_block.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
UnitStateType get_value() const noexcept
Getter for member variable UnitState::value.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const std::shared_ptr< Expression > & get_rhs() const noexcept
Getter for member variable BinaryExpression::rhs.
UnaryExpression * clone() const override
Return a copy of the current node.
LonDifuse * clone() const override
Return a copy of the current node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string eval() const
Return enum value in string form.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable FunctionBlock::name.
std::shared_ptr< Name > name
TODO.
Represents a statement in ASSIGNED or STATE block.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
type of ast::IndependentDefinition
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< StatementBlock > statement_block
Block with statements vector.
Statement to indicate a change in timestep in a given block.
static const std::string FirstLastTypeNames[]
string representation of ast::FirstLastType
std::shared_ptr< BABlockType > type
Type of NMODL block.
Unit * clone() const override
Return a copy of the current node.
bool is_unary_expression() const noexcept override
Check if the ast node is an instance of ast::UnaryExpression.
std::shared_ptr< ModToken > token
token with location information
virtual std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Identifier > name
TODO.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const std::string & get_value() const noexcept
Getter for member variable Double::value.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
PartialBlock * clone() const override
Return a copy of the current node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
Represents a variable in the ast::ConstantBlock.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
Suffix * clone() const override
Return a copy of the current node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
int get_value() const noexcept
Getter for member variable Boolean::value.
bool is_constant_block() const noexcept override
Check if the ast node is an instance of ast::ConstantBlock.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Name > name2
TODO.
type of ast::FirstLastTypeIndex
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< StatementBlock > finalize_block
Statement block to be executed after calling newton solver.
const std::shared_ptr< Identifier > & get_name() const noexcept
Getter for member variable Argument::name.
WrappedExpression * clone() const override
Return a copy of the current node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable BreakpointBlock::statement_block.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
UnitDef * clone() const override
Return a copy of the current node.
bool is_argument() const noexcept override
Check if the ast node is an instance of ast::Argument.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
ConstantVar * clone() const override
Return a copy of the current node.
std::shared_ptr< Expression > rhs
TODO.
void negate() override
Negate the value of current ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
symtab::ModelSymbolTable model_symtab
global symbol table for model
Represents a PARAMETER block in the NMODL.
type of ast::KineticBlock
bool is_integer() const noexcept override
Check if the ast node is an instance of ast::Integer.
virtual std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
bool is_first_last_type_index() const noexcept override
Check if the ast node is an instance of ast::FirstLastTypeIndex.
const std::shared_ptr< Expression > & get_expression() const noexcept
Getter for member variable Match::expression.
QueueExpressionType * clone() const override
Return a copy of the current node.
std::shared_ptr< ModToken > token
token with location information
type of ast::SolutionExpression
bool is_mutex_lock() const noexcept override
Check if the ast node is an instance of ast::MutexLock.
const std::shared_ptr< Expression > & get_lhs() const noexcept
Getter for member variable BinaryExpression::lhs.
std::shared_ptr< Name > byname
Name of the variable (TODO)
const std::shared_ptr< StatementBlock > & get_statement_block() const noexcept override
Getter for member variable ElseIfStatement::statement_block.
int eval() const
Return value of the ast node.
virtual double to_double()
StatementVector::const_iterator insert_statement(StatementVector::const_iterator position, const std::shared_ptr< Statement > &n)
Insert member to statements.
std::string eval() const
Return enum value in string form.
bool is_conserve() const noexcept override
Check if the ast node is an instance of ast::Conserve.
std::shared_ptr< Expression > rhs
RHS of the binary expression.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
Represents a PLOT statement in the NMODL.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
virtual Node * clone() const override
Return a copy of the current node.
Represents a INDEPENDENT block in the NMODL.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::vector< std::shared_ptr< ConstantStatement > > ConstantStatementVector
bool is_function_table_block() const noexcept override
Check if the ast node is an instance of ast::FunctionTableBlock.
std::shared_ptr< ModToken > token
token with location information
bool is_expression_statement() const noexcept override
Check if the ast node is an instance of ast::ExpressionStatement.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
Represent MUTEXUNLOCK statement in NMODL.
void set_token(const ModToken &tok)
Set token for the current ast node.
UnitStateType
enum type used for UNIT_ON or UNIT_OFF state
DiscreteBlock * clone() const override
Return a copy of the current node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
DiffEqExpression * clone() const override
Return a copy of the current node.
Represents USEION statement in NMODL.
void set_token(const ModToken &tok)
Set token for the current ast node.
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
bool is_assigned_block() const noexcept override
Check if the ast node is an instance of ast::AssignedBlock.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::vector< std::shared_ptr< WriteIonVar > > WriteIonVarVector
Represent WATCH statement in NMODL.
std::shared_ptr< ModToken > token
token with location information
void set_token(const ModToken &tok)
Set token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
type of ast::ElectrodeCurrent
std::shared_ptr< Number > to
TODO.
void set_token(const ModToken &tok)
Set token for the current ast node.
virtual std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const PlotVarVector & get_variables() const noexcept
Getter for member variable PlotDeclaration::variables.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< Identifier > name
TODO.
std::shared_ptr< Name > name
Name of the partial block.
bool is_range_var() const noexcept override
Check if the ast node is an instance of ast::RangeVar.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< ModToken > token
token with location information
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
bool is_ontology_statement() const noexcept override
Check if the ast node is an instance of ast::OntologyStatement.
type of ast::AssignedDefinition
std::shared_ptr< Unit > unit
Unit if specified.
const std::shared_ptr< Name > & get_name() const noexcept
Getter for member variable PartialBlock::name.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::shared_ptr< Double > value
TODO.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
InitialBlock * clone() const override
Return a copy of the current node.
SectionVar * clone() const override
Return a copy of the current node.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
Represent newton solver solution block based on Eigen.
const std::shared_ptr< Name > & get_del2() const noexcept
Getter for member variable PartialBoundary::del2.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
std::shared_ptr< Expression > expression
Expression that is being wrapped.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
const std::shared_ptr< Number > & get_min() const noexcept
Getter for member variable NumberRange::min.
UnaryOp get_value() const noexcept
Getter for member variable UnaryOperator::value.
StatementVector solve_statements
solve blocks to be called or generated
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
void set_token(const ModToken &tok)
Set token for the current ast node.
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
bool is_expression() const noexcept override
Check if the ast node is an instance of ast::Expression.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
virtual Number * clone() const override
Return a copy of the current node.